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

问题描述 投票:1回答:1

问题:下面的代码生成一个图,该图根据颜色对数据进行分组并在相应的y数据点上注释文本。与图进行交互时(在查看器窗格中),例如只有型号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"))

[您可以在下面找到描述我的问题的图形。一旦在绘图图中仅选择a4,帕萨特线就会消失,但是与此线相关的数字仍然保留。

目标:如何修改代码,以使不仅a4 / passat的行消失,而且相关的数字消失?enter image description here

感谢您的建议/意见。

r plot plotly data-visualization r-plotly
1个回答
2
投票

add_text语句的showlegend选项为FALSE,它有效地隐藏了可能显示/隐藏文本/数字的第二个图例。

一种策略可能是使用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"))

plotly plot using legendgroup

© www.soinside.com 2019 - 2024. All rights reserved.