add_trace:控制颜色

6

我有一个图形,其中灰色是第一条轨迹,将被其他颜色的轨迹覆盖。我的问题是,在plotly 4.7.1版和4.8.0版中,我无法调整颜色。

一年前,这个代码是可以正常工作的:

mysim=data.frame(x=rep(1:4,4),y=rbinom(16,10,0.5),id=rep(1:4,each=4))

my_colors<-c(             ## add the standard plotly colors
        '#1f77b4',  #// muted blue
         '#ff7f0e',  #// safety orange
         '#2ca02c',  #// cooked asparagus green
         '#d62728'  #// brick red
             ) 


plot_ly() %>%
 add_trace(x=1:4,y=rbinom(4,10,0.4),type='scatter',mode='lines',
            line=list(color='#CCCCCC',dash='dashed'),hoverinfo='skip',opacity=0.25) %>% 
  add_trace(data=mysim,x=~x,y=~y,type='scatter',mode='lines', split=~as.factor(id),
            line=list(color=my_colors),hoverinfo='skip',opacity=1) 

很遗憾,我不再拥有那台机器了。但似乎自那时以来 plotly 发生了变化。我也尝试使用 color 参数代替 split 并使用 colors 而非 line 列表来指定颜色,但没有任何影响。我仍然得到这个图表:enter image description here 在哪里出了问题?如何让它正常工作?
1个回答

10
请参见此问题
如果您在split之外使用color,并在plot_ly函数中使用colors参数在开头设置颜色,则此方法有效。
plot_ly(colors=my_colors) %>%
  add_trace(x=1:4,y=rbinom(4,10,0.4),type='scatter',mode='lines', line=list(color='rgb(0,0,255)',dash='dashed'),hoverinfo='skip',opacity=0.25) %>% 
  add_trace(data=mysim,x=~x,y=~y,type='scatter',mode='lines', color=~as.factor(id),
            hoverinfo='skip',opacity=1) 

这个太神了!我简直不敢相信我现在才看到它——它解决了我两年多的问题。通过以下方式,symbol也可以被设置:symbols = c("key1" = "symbol1", "key2" = "symbol2")。颜色也可以用同样的方式设置,如colors = c("key1" = "color1", "key2" = "color2")。当颜色顺序在带有许多add_trace的循环中发生变化时,这是必需的。更多信息请参见:https://github.com/plotly/plotly.R/issues/790#issuecomment-931292330。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接