R 不使用添加跟踪时,条形图中缺少标签颜色

R 不使用添加跟踪时,条形图中缺少标签颜色,r,plotly,R,Plotly,在不使用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),

在不使用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")
颜色%
布局(barmode=“相对”)
当直接使用“marker=list(color=colors)”选项而不是“colors”选项时,也会发现同样的问题。当使用add_trace时,一切似乎都正常。但由于颜色级别的数量一直不知道,因此使用添加跟踪(在循环中)的解决方案感觉不太令人信服。

尝试以下方法:

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

h作为替代方案,也许您可以将数据集从长改宽

代码如下:

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"))
library(重塑2)
数据范围%
添加_条(y=~A,name=“A”,color=I(“蓝色”))%>%
添加_条(y=~B,name=“B”,color=I(“红色”))%>%
添加_条(y=~C,name=“C”,color=I(“黄色”))%>%
布局(barmode=“stack”,yaxis=list(title=“value”))

你是说图例中的颜色吗?是的,编辑了我的初始问题以使其更清晰