繁体   English   中英

如何在ggplot2 :: position_stack中缩放距离?

[英]How are distances scaled in ggplot2::position_stack?

我想绘制一个人口金字塔,其标签旁边是ggplot的堆积条。 我使用position_stack(vjust=1.3)使用下面的代码使标签出现在条形图的“顶部”旁边,但我不明白该命令如何缩放标签的位置。

library(tidyverse)

data.frame(
  sex = c("F", "F", "F", "F", "F", "F", "F", "F", "M", "M", "M", "M", "M", "M", "M", "M"), 
  ag = c("0-9", "10-19", "20-29", "30-39", "40-49", "50-59", "60-69", "70+"), 
  n = c(-0.21, -0.12, -0.09, -0.03, -0.04, -0.01, 0, 0, 0.22, 0.11, 0.06, 0.04, 0.02, 0.03, 0.01, 0),
  stringsAsFactors = F
) %>% 
  ggplot(aes(x=ag, y = n, fill=sex)) +
  geom_col() +
  scale_fill_brewer("",labels = c("Women", "Men"), palette = "Set1") +
  coord_flip() +
  geom_text(data = . %>% dplyr::filter(sex == "M"),
            aes(label = n),
            position=position_stack(vjust=1.3)) +
  geom_text(data = . %>% dplyr::filter(sex == "F"),
            aes(label = n),
            position=position_stack(vjust=-0.3)) 

在得到的图中,标签与条的上边缘不等距。 我希望标签在每个栏旁边都能整齐地显示出来。 在此输入图像描述

你可以试试position_nudge

   df %>% 
{ggplot(data=.,aes(x=ag, y = n, fill=sex,label = n)) +
  geom_col() +  
  geom_text(position = position_nudge(y = ifelse(.$sex == "F", -0.02, 0.02)))+
  coord_flip()}

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM