簡體   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