r - 如何自定义堆积条形图中的颜色
问题描述
也许有人已经问过一个问题。
我有一个如下所示的数据框(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,但我希望灰色位于顶部,而条形图中的连续性从蓝色到这红色。也许还有另一种方法可以为条形着色并设置所需的顺序。
解决方案
这些组按因子水平的顺序绘制在条形图中。您可以通过更改调用中的因子级别的顺序来更改绘图顺序,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"))
推荐阅读
- ggplot2 - 如何在 ggplot 中使用 na.omit
- angular - Angular - 如果属性存在则赋值
- ldap - OpenVPN CE LDAP 与 Google 禁用其他证书?
- c# - 发生未处理的异常时 Visual Studio 监视变量值
- gremlin - 添加属性键基数
- r - 动态构建 RMarkdown
- java - 在Android(java)中建立套接字连接后出现异常
- laravel - laravel 雄辩与枢轴和另一个表
- regex - Intellij 正则表达式不匹配
- html - 如何通过使用jquery单击另一个html页面上的元素来设置一个html页面的输入值?