R使用ggplot geom_area堆叠区域的顺序

wz3gfoph  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(103)

我需要重新安装R,现在我遇到了一个小问题与ggplot。我相信有一个简单的解决方案,我感谢所有的提示!
我经常使用堆叠面积图,通常我通过定义因子水平并以相反的顺序绘图来获得所需的堆叠和图例顺序。但是,在重新安装后,这不再起作用。
下面是一个例子:

dx <- data.frame(x=rep(1:8,3),y=rep(c(2,3,2,4,3,5,3,2),3),z=c(rep("bread",8),rep("butter",8),rep("fish",8)))

ggplot() + geom_area(data=dx, aes(x=x, y=y, fill=z, order=-as.numeric(z)))

这给出了以下图:

看起来“秩序”对剧情没有任何影响。
所需的绘图将堆叠图例中所示的区域,即红色区域在顶部,蓝色区域在底部。
我错在哪里?
非常感谢提前!

oxf4rvwz

oxf4rvwz1#

您可以使用(颜色也将反转):

dx$z <- factor(dx$z, levels = rev(levels(dx$z)))
ggplot() + geom_area(data=dx, aes(x=x, y=y, fill=z))

或直接使用此方法(不反转因子水平,这不会更改颜色):

ggplot() + geom_area(data=dx, aes(x=x, y=y, fill=z)) + 
                 guides(fill = guide_legend(reverse=TRUE))

agyaoht7

agyaoht72#

这是一个很好的工作例子,为新来者。我错过的主要事情是选择一个接一个地放置系列,而不是堆叠它们。

  • position =“stack”(默认)
  • position =“dodge”
geom_area(position = "dodge")

相关问题