2017-01-02 7 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"))