使用新版ggplot进行色阶反转

时间:2016-11-29 09:33:14

标签: r ggplot2

我有一个质量流程,我需要随着时间的推移导出完全相同的图表。我主要使用ggplot2的叠加条形图,这对我来说非常充足。最近,我将我的ggplot2版本更新为ggplot2 2.2.0,我找不到重现以前图表的方法。

这是我的代码:

DF1=data.frame(Rank=rep(1:4,3),variable=rep(c("F1","F2","F3"),each=4),value=c(500,400,300,200,250,100,155,90,50,30,100,10))
library(ggplot2)
ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + geom_bar(stat = "identity")

在之前版本的ggplot2中,此代码生成了一个图表,其中F1为粉红色,F2为绿色,F3为蓝色。现在仍然如此,但现在粉红色的部分位于栏的顶部(见下图)

Difference between the two graphs

我试图改变变量因子的顺序,但现在F1是蓝色等,这不是我想要的。

DF1$variable=factor(DF1$variable,levels=rev(levels(DF1$variable)))
ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + geom_bar(stat = "identity")

enter image description here

你知道我怎么能找到好的旧图吗? (从长远来看,回到以前的版本不是一个可行的版本)

1 个答案:

答案 0 :(得分:2)

您可以在reverse = TRUE设置position_stack以反转默认的堆叠顺序(请参阅?position_stack)。

ggplot(DF1, aes(x = Rank, y = value, fill = variable)) +
  geom_bar(stat = "identity", position = position_stack(reverse = TRUE))

给出了:

enter image description here