簡體   English   中英

如何在r-plotly中向折線圖的峰值動態添加注釋?

[英]How to dynamically add annotation to peak of line graph in r-plotly?

我正在嘗試重現此頁面中顯示的代碼,特別是名為“混合數據操作和可視化動詞”的代碼

我實際上只是復制粘貼了代碼並進行了一些小的更改以使其運行( plot_ly現在要求使用“~”等引用列名)。 但是,我的圖表看起來非常不同:

我擁有的我擁有的

我查看了 plot_ly 中的注釋,但似乎需要對這一點進行硬編碼,而不是像作者那樣自動使用filter (除非我誤解了。)這就是我正在使用的:

p4 <- plot_ly(economics, x = economics$date, y = economics$uempmed)

p4 %>%
  add_trace(y = fitted(loess(economics$uempmed ~ as.numeric(economics$date)))) %>%
  add_lines(x = economics$date, y = economics$uempmed) %>%
  layout(title = "Median duration of unemployment (in weeks)",
         showlegend = FALSE) %>%
  dplyr::filter(economics$uempmed == max(economics$uempmed)) %>%
  layout(annotations = list(x = economics$date, y = economics$uempmed, text = "Peak", showarrow = T))

我希望它看起來像在網站上(如下),但似乎注釋文本只是在整行中被垃圾郵件而不是僅僅停留在最大值:

它應該是什么樣子

它應該是什么樣子

有人能告訴我我做錯了什么嗎?

為什么不在將其放入鏈之前先預先計算峰值

peak <- dplyr::filter(economics, uempmed == max(uempmed))
p4 %>%
  add_trace(y = fitted(loess(economics$uempmed ~ as.numeric(economics$date)))) %>%
  add_lines(x = economics$date, y = economics$uempmed) %>%
  layout(title = "Median duration of unemployment (in weeks)",
         showlegend = FALSE) %>%
  layout(annotations = list(x = peak$date, y = peak$uempmed, text = "Peak", showarrow = T))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM