2017-01-02 43 views
0

時,當不使用add_trace創建彩色barplot,傳說中的一些標籤顏色保持黑色:缺少的標籤顏色不使用add_trace

colors <- c("blue","grey", "red", "yellow") 
    data <- data.frame(time = factor(c("2010", "2011", "2010", "2011", "2010", "2011")), 
        value = c(10, 20, 30, 40, 50, 60), 
        type = c("A", "B", "C", "A", "B", "C")) 

    data %>% 
    plot_ly(
     type = "bar", 
     x = ~time, 
     y = ~value, 
     color = ~type, 
     colors = colors) %>% 
    layout(barmode = "relative") 

同樣的問題也可以當使用「標記=名單(被發現顏色=顏色)「選項而不是顏色選項直接。改用add_trace時,一切似乎都正常。但是由於顏色級別的數量並不是一直預先知道的,所以使用add_trace(在循環內)的解決方案感覺不太方便。

+0

你的意思是傳說中的顏色? – mtoto

+0

是的,編輯我的第一個問題,使其更清晰一些 –

回答

0

試試這個:

h<-ggplot(data, aes(x=time, y=value, fill=type))+geom_bar(stat = "identity") 
ggplotly() 
0

作爲替代方案,也許你可以重塑你的數據集從長到寬。

下面是代碼:

library(reshape2) 
data_wide <- dcast(data, time ~ type, value.var="value") 
plot_ly(data_wide, x=~time) %>% 
     add_bars(y = ~A, name = "A", color= I("blue")) %>% 
     add_bars(y = ~B, name = "B", color= I("red")) %>% 
     add_bars(y = ~C, name = "C", color= I("yellow")) %>% 
     layout(barmode = "stack", yaxis = list(title ="value"))