首页 > 解决方案 > 在堆积条形图中反转 geom_text() (ggplot2)

问题描述

我正在制作一个相当复杂的条形图,并在其中添加了一条额外的帕累托线。通常我的条形图可以正常工作 - 也可以使用堆叠条顶部的 geom_text() 标签。但现在我似乎无法让它工作。geom_bar() 的 geom_text() 在每个柱上的顺序错误(从上到下),我不知道为什么。这是(部分)我的代码:

ggplot() +
  theme_mso() +
  geom_bar(data = uth.sum, aes(x = reorder(dpsd_ny, -n), y = n, fill = alvor), stat = "identity") +
  geom_text(data = uth.sum, aes(x = reorder(dpsd_ny, -n), y = n, label = n), position = position_stack(vjust = .5)) +
  scale_fill_manual(values = col) +
  geom_point(data = uth.sum2, aes(x = dpsd_ny, y = akkumuleret)) +
  geom_line(data = uth.sum2, aes(x = dpsd_ny, y = akkumuleret, group = 1), stat = "identity") +
  scale_y_continuous(sec.axis = sec_axis(~(./total_value)*100, name = "Procent")) +
  geom_text(data = uth.sum2, aes(x = dpsd_ny, y = akkumuleret, label = procent), position = position_stack(vjust= 1.08)) +

.... 等等。希望这是有道理的,有人可以提供帮助!

标签: rggplot2labelgeom-text

解决方案


您可以尝试将组的级别顺序指定为您喜欢的顺序。对于具有指定填充的每个几何图形,添加级别顺序规范。

#Specify level orders
level_order <- c("A", "B", "C", "D", "E", "F")

修改您的 ggplot 代码以将级别顺序添加到适当的美学中。

geom_bar(aes(x=X, y=Y, fill=factor(group, level_order))

推荐阅读