我只想为最后一组更改条形图的顺序,只是为了突出显示它。我使用了scale_fill_manual()
,但是并没有太大帮助。
这是我的代码:
x<-c(rep(c("Type1", "Type2"),4))
y<-c(4,5,6,7,3,4,5,2)
time<-c(2010,2010,2011,2011,2012,2012,2013,2013)
z<-data.frame(type = x, val=y, Time = time)
ggplot(data = z, aes(x=Time,y=val)) +
geom_bar(stat = "identity", position = "dodge", aes(fill=type))+
scale_fill_manual(values = c(rep(c("white", "gray51"),3),"white","red"))
这是输出:
我希望图看起来像:
有什么办法可以做到吗?我将不胜感激任何帮助。我查看了change color of only one bar in ggplot,但它似乎与分组数据无关。
最佳答案
我的一般口头禅是ggplot非常擅长绘制您提供的数据。如果您希望它绘制不同的内容,最简单的方法通常是修改数据。
z$type2 = as.character(z$type)
z$type2[z$type == "Type2" & z$Time == 2013] = "Type2 "
我为要突出显示的行在
"Type2 "
中添加了一个偷偷摸摸的额外空间。这将是一个不同的因子级别,并具有其自己的颜色(甚至使用字母默认值被强制为一个好的顺序)。但是在图例标签中将显示相同的内容。ggplot(data = z, aes(x=Time,y=val)) +
geom_bar(stat = "identity", position = "dodge", aes(fill=type2))+
scale_fill_manual(values = c("white", "gray50", "red"))
我以为从图例中删除红色会很困难,但是this answer向我展示了所有需要做的就是添加
breaks = c("Type1", "Type2")
作为scale_fill_manual
的参数。关于r - 更改ggplot中躲避的条形之一的填充颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39235840/