也许有人已经问过这个问题。
我有一个看起来像这样的数据框(dat):
Sample perc cl
a 30 0
b 22 0
s 2 0
z 19 0
a 12 1
b 45 1
s 70 1
z 1 1
a 60 2
b 67 2
s 50 2
z 18 2
我想生成一个堆积的条形图。为此,我使用了以下命令:
g = ggplot(dat, aes(x = cl, y = Perc,fill = Sample)
g + geom_bar(stat="identity", position = "fill", show.legend = FALSE) +
scale_fill_manual(name = "Samples", values=c("a"="blue","b" = "blue","s" = "gray","z" = "red"))`
幸运的是,颜色分配正确。我的观点是,条形图中的样本顺序是从条形的顶部到底部从a到z,但是我希望这样一种情况,即灰色位于顶部,而条形从蓝色到最大的连续性不会丢失。这红色。也许还有另一种方法可以为条形着色并设置所需的顺序。
答案 0 :(得分:1)
这些组按因子水平的顺序绘制在条形图中。您可以通过使用aes
更改对factor(var, levels(var[order]))
的调用中的因子水平的顺序来更改绘图顺序,如下所示:
library(ggplot2)
ggplot(dat, aes(x = cl, y = perc,
fill = factor(Sample, levels(Sample)[c(3,1,2,4)]))) +
geom_bar(stat="identity", position = "fill", show.legend = FALSE) +
scale_fill_manual(name = "Samples",
values=c("a"="blue","b" = "blue","s" = "gray","z" = "red"))