r语言 - 改变人口金字塔中标签的位置(ggplot2)



我在R Studio中标记我的人口金字塔时有问题。我想在两个不同的方向上调整标签的位置,这取决于它们在哪一边。更准确地说,我希望左边的值(男性)更靠左一点,这样它们就在相邻的上在左边的条形图中,右边的值(女性)更向右一点,所以它们与右边的条形图相邻。

This is my data and the code I have so far:
#   Geschlecht      Alter Anzahl     Prozent
#1        Bock        0.5      6 0.006276151
#2        Bock        1.5    172 0.179916318
#3        Bock       10.5     23 0.024058577
#4        Bock       11.5      8 0.008368201
#5        Bock       12.5     14 0.014644351
#Translation column names: Sex, Age, Count, Percentage
ggplot(Verteilung,aes(x = Alter,
y = ifelse(Geschlecht == 'Bock', -Anzahl, Anzahl),
fill = Geschlecht,
label = Anzahl)) +
geom_bar(stat = 'identity') +
scale_y_continuous(name = 'Anzahl', labels = abs, breaks = seq(-200,200,10)) +
scale_x_discrete(name = 'Alter', limits = c('1.5','2.5','3.5','4.5','5.5','6.5','7.5','8.5','9.5',
'10.5','11.5','12.5','13.5','14.5','15.5','16.5','17.5','18.5','19.5')) +
coord_flip() +
theme_minimal() +
ggtitle('Zusammensetzung Verteilung nach Alter und Geschlecht') +
scale_fill_manual(values = c('steelblue1', 'hotpink1')) +
geom_text(aes(label = Anzahl), size = 4)

我试过用position_stack和position_nudge来解决它,但我不知道如何根据性别在两个不同的方向上移动值(尝试过ifelse函数)。有人知道怎么解决这个问题吗?谢谢你!

我现在的人口金字塔。我希望标签被定位到相邻的条,即在左侧的左边多一点,在右侧的右边多一点

成功了:

geom_text(aes(hjust = ifelse(Geschlecht == "Bock", 1, 0))

相关内容

  • 没有找到相关文章

最新更新