Plotly R:如何在不重绘的情况下更新线条样式(本地)

时间:2016-04-07 15:44:46

标签: r shiny plotly

我想在一个闪亮的应用程序中本地绘制几十行。在绘制线条之后,我希望能够在不重绘的情况下更改样式吗?

在下面的示例中,为简单起见,只有6条迹线(线条)。我想只更改第一行和第三行的不透明度,而不重绘任何内容:

library(plotly)
plot_ly(mtcars, x=mpg, y=wt, group=carb)
style(p = last_plot(), opacity=0.1) #Only modifies first line & complains : You've referenced non-existent traces
style(p = last_plot(), opacity=0.1, traces = 3) #Does not work at all
Warning: You've referenced non-existent traces
Error in p$data[[max(traces)]] : subscript out of bounds

如何使用style()?

我搜索了很多但找不到任何文档

感谢您的帮助

问候

2 个答案:

答案 0 :(得分:1)

我认为style()旨在使用类似的东西:

p <- plot_ly(x = seq(0, 8), y = rnorm(8), name = "Blue Trace") %>%
       add_trace(y = rnorm(8), name = "Orange Trace") %>% 
       add_trace(y = rnorm(8), name = "Green Trace")
p
pp <- style(p = last_plot(), opacity=0.1, traces = 1)
pp
ppp <- style(pp = last_plot(), opacity=0.1, traces = 2)
ppp
pppp <- style(ppp = last_plot(), opacity=0.1, traces = 3)
pppp 

答案 1 :(得分:0)

也许这会有帮助吗?您应该能够快速跳转到任何跟踪并修改/添加任何属性。

library(plotly)
p <- plot_ly(mtcars, x=mpg, y=wt, group=carb)
p <- plotly_build(p)
p$data[[1]]$opacity = 0.1
p$data[[3]]$opacity = 0.1

p