繁体   English   中英

R绘图如何使用add_trace()对具有颜色分组的绘图

[英]R plotly how to use add_trace() to a plot with color grouping

如何获得以下代码在(1,2)和(3,2)之间划一条线?

plot_ly(x=c(1,2,3),
        y=c(1,2,3),
        type='scatter',
        mode='markers',
        color=as.factor(c('a','b','c')))%>%
  add_trace(x=c(1,3,NA),
            y=c(2,2,NA),
            mode='lines')

此处的解决方案R用图形将add_trace绘制到具有颜色组的图表上不起作用。 谢谢。 在此处输入图片说明

编辑:使用inherit=FALSE做的工作(感谢乔尼·菲尔普斯)

plot_ly(x=c(1,2,3),
        y=c(1,2,3),
        type='scatter',
        mode='markers',
        color=as.factor(c('a','b','c')))%>%
  add_trace(x=c(1,3),
            y=c(2,2),
            mode='lines',
            inherit = FALSE,
            line=list(color='black'))

在此处输入图片说明

从您的评论中回答。 有时候我对Plotly感到非常痛苦。 这种作品,但传说是一团糟,需要一些工作。

挑战是从一个系列中制作多条彩色线条。 我不认为Plotly本机处理这些问题(希望看到更好的示例)。 因此,我已经循环播放了。 使用group=选项,您也许可以得到一些更优雅的东西。

我添加了第4个值,因为它更好地显示了输出。

编辑:我有一个真正的痛点与颜色“ a”。 如果您看第一个p,它是绿色的。 循环后,它变成棕色。 这就是为什么我添加“行+标记”而不是“标记”的原因。 有人会知道如何改善它,但这是另一种痛苦

library(plotly)
library(RColorBrewer)

dat <- data.frame(x1=c(1,2,3,4), y1=c(1,2,3,4), mycolor=c('a','b','c','d'), 
                  x2=c(1,2,3,NA), y2=c(1,2,3,NA),
                  stringsAsFactors = FALSE) 
colours <- brewer.pal(length(unique(dat$mycolor)), "Dark2")
p <- plot_ly(data=dat, x=~x1, y=~y1, colors=colours) %>%
   add_trace(mode='markers', color=~mycolor, data=dat, 
             x=~x1, y=~y1) 
p

N <- nrow(dat)-1
for(i in 1:N){
  p <- p %>% add_trace(data=dat[i:(i+1),], x=~x2, y=~y2, mode='lines+markers',
                       type="scatter", color=colours[i],
                       inherit=FALSE) 
}
p

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM