r - Plotly R 中的颜色和文本注释 - 交互模式
问题描述
问题:以下代码会生成一个绘图图,该图根据颜色对数据进行分组,并在相应的 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的行不仅消失,而且相关的数字也消失?
感谢您的建议/意见。
解决方案
该add_text
语句具有选项showlegend
as 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"))
阴谋
推荐阅读
- json - 如何将字符串键和数字或字符串值的映射反序列化为 HashMap
与serde? - r - 如何将 R 中循环返回的图像保存到硬盘驱动器?
- python - 如何在 Kubernetes 中找到分配给 V1ObjectMeta 的名称是什么?
- xamarin.forms - 如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色
- sqlite - 我应该如何组织具有唯一主键的表
- javascript - 为什么我会收到“TypeError:无法读取未定义的属性‘Sequelize’”
- javascript - 我想通过单击反应 js 中的按钮来选择输入框中的文本,但我的代码不起作用
- javascript - RxJS:在管道链的下游访问先前的值
- python - 使用 GraphQL +Ariadne + Flask 上传文件:graphql.error.graphql_error.GraphQLError: Operation data should be an JSON object
- windows-store-apps - Microsoft Store 开发人员(个人)的最低年龄是多少?