如何在ggplot堆叠条形图中仅更改一个堆栈的颜色?

时间:2018-03-27 12:51:01

标签: r ggplot2 bar-chart plotly

我有一个ggplot堆积的条形图,如下所示

enter image description here

我想仅为var lkfieldState = new SP.FieldLookupValue(); lkfieldState.set_lookupId(1); //WHERE ID_VALUE is the unique ID then while setting you can use newItem.set_item("State", lkfieldState); 更改堆栈的颜色组合,例如c(" red"," green")。我想要的输出是

desired_plot

我试过

dec

只需要最后ggplot() + geom_bar(data = x1, aes(y = values, x = months, fill = variable), stat="identity") + scale_fill_manual(values = c("orange", "blue")) + geom_bar(data = x2, aes(y = values, x = months, fill = variable), stat="identity") + scale_fill_manual(values = c("red", "green")) 个值。 如果是常规的条形图,则更改scale_fill_manual中的fill有效。我无法弄清楚如何在没有为图例创建额外值的情况下对叠加图进行此操作。

在我的代码中,x1包含jan到nov的值,x2包含dec的值。两者都是整个数据的子集。

1 个答案:

答案 0 :(得分:1)

很难给出没有数据集的代码,但是你想要尝试做的是创建一个新的type列(对于完整的数据集),它将区分Dec列和其他列,所以你将有四种类型:鸡,鸡蛋,鸡 - 十二月,鸡蛋 - 十二月。 fill基于这个新专栏,您将获得12月酒吧的新颜色。

然后您可以使用

scale_fill_manual(breaks=c("chickens","eggs"),
                values=c("green", "orange", "red", "blue")) 

仅在图例中包含您想要的值(请原谅我的随机颜色选择 - 为图表使用更好的颜色)。