[英]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.