Plotly R 中的颜色和文本注释 - 交互模式

Colors and text annotations in Plotly R - interactive mode

问题: 下面的代码生成一个 图,它根据颜色对数据进行分组,并在相应的 y 数据点上注释文本。与绘图交互时(在查看器窗格中),selection of e.g.只有模型 a4(通过单击该行)无法正常工作,因为所有其他模型的行都消失了,但相应的数字不会。有什么解决办法吗?

library(plotly)
library(data.table)
dt <- as.data.table(mpg)

plot_ly(dt[model %in% c("a4", "passat")],
        x = ~year,
        y = ~displ,
        color = ~model,
        colors = "Set1") %>% 
  add_lines() %>% 
  add_text(y = ~displ, 
           text = ~displ,
           textposition = "top right",
           showlegend = FALSE) %>% 
  layout(xaxis = list(title = ""),
         yaxis = list(title = "Anzahl"))

您可以在下面找到描述我的问题的图表。一旦我 select 在 plotly 图表中只有 a4,passat 线就会消失,但与此线相关的数字仍然存在。

目标: 如何修改代码,使 a4/passat 的行消失,相关数字也消失?

感谢您的建议/意见。

add_text 语句有选项 showlegend 作为 FALSE,这有效地隐藏了潜在的第二个图例,该图例将 show/hide text/numbers。

一种策略是使用 legendgroup 将线条和文本的两个图例组合在一起,同时仍然隐藏文本图例。在这种情况下,该组应分配给 model

library(plotly)
library(data.table)

dt <- as.data.table(mpg)

plot_ly(dt[model %in% c("a4", "passat")],
        x = ~year,
        y = ~displ,
        color = ~model,
        colors = "Set1") %>% 
  add_lines(legendgroup = ~model) %>% 
  add_text(y = ~displ, 
           text = ~displ,
           textposition = "top right",
           showlegend = FALSE,
           legendgroup = ~model) %>% 
  layout(xaxis = list(title = ""),
         yaxis = list(title = "Anzahl"))

情节