r - R在Plotly中禁用图层
问题描述
我有一个包含多条线的图,并且希望只使用一些活动层来初始化它。可能吗?以下是数据的示例:
set.seed(101)
df <- data.frame(x = seq(1,20,1),
y1 = runif(20),
y2 = runif(20),
y3 = runif(20),
y4 = runif(20))
plot_ly(df, x = ~x) %>%
add_lines(y = ~y1, name='y1', line = list(color = 'rgba(255,0,0,1')) %>%
add_lines(y = ~y2, name='y2', line = list(color = 'rgba(0,255,0,1')) %>%
add_lines(y = ~y3, name='y3', line = list(color = 'rgba(106,90,205,1')) %>%
add_lines(y = ~y4, name='y4', line = list(color = 'rgba(0,0,255,1')) %>%
layout(
xaxis = list(title = "x", domain = c(0,1), tickmode = 'auto'),
yaxis = list(title = 'y', side = "left", color = "black", position = 0,
anchor = 'free', range = c(0,1), dtick = 1),
showlegend = T
)
我想要的是生成一个包含所有线条的图,但例如关闭 y3 和 y4 并且仍然允许用户打开它(这个图是闪亮应用程序的一部分)。
甚至可能吗?
谢谢!
解决方案
您需要为visible = "legendonly"
要隐藏的痕迹进行设置:
library(plotly)
set.seed(101)
df <- data.frame(x = seq(1,20,1),
y1 = runif(20),
y2 = runif(20),
y3 = runif(20),
y4 = runif(20))
plot_ly(df, x = ~x) %>%
add_lines(y = ~y1, name='y1', line = list(color = 'rgba(255,0,0,1')) %>%
add_lines(y = ~y2, name='y2', line = list(color = 'rgba(0,255,0,1')) %>%
add_lines(y = ~y3, name='y3', line = list(color = 'rgba(106,90,205,1'), visible = "legendonly") %>%
add_lines(y = ~y4, name='y4', line = list(color = 'rgba(0,0,255,1'), visible = "legendonly") %>%
layout(
xaxis = list(title = "x", domain = c(0,1), tickmode = 'auto'),
yaxis = list(title = 'y', side = "left", color = "black", position = 0,
anchor = 'free', range = c(0,1), dtick = 1),
showlegend = TRUE
)
要获取有关可用跟踪属性的更多信息,请使用:
schema()
并按如下方式导航:
对象 ► 轨迹 ► 分散 ► 属性
推荐阅读
- mysql - 避免用户在wordpress中更改密码
- python - 尝试语句未按预期运行
- html - 在 Telegram 的富链接预览中获得良好的 BIG/LARGE 图像
- json - 如何为每个字段选择 Excel 表中给出的 JSON 节点?
- ubuntu-18.04 - VisualVM 无法启动
- javascript - Chrome 扩展 onMessage 侦听器未收到第二条消息
- mysql - mySQL:如何处理 3 个不同的表,引用每个表中的不同列但使用主键
- git - Gitlab API提交差异不获取所有文件
- assembly - 汇编打印变量
- swift - 指定行数后UILabel SizetoFit?