繁体   English   中英

将文本标签添加到 R 中的分组条形图

[英]addint text labels to a grouped barchart in R

我的数据看起来像这样:

structure(list(region1 = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 
6L, 6L, 7L, 7L, 7L, 7L), .Label = c("Location1", "Location2", 
"Location3", "Location4", "Location5", "Location6", 
"OTHERS"), class = "factor"), startYear = c(2016, 2017, 2018, 
2019, 2016, 2017, 2018, 2019, 2016, 2017, 2018, 2019, 2016, 2017, 
2018, 2019, 2016, 2017, 2018, 2019, 2016, 2017, 2018, 2019, 2016, 
2017, 2018, 2019), n = c(322L, 697L, 620L, 849L, 832L, 541L, 
868L, 687L, 117L, 706L, 613L, 689L, 733L, 445L, 150L, 220L, 936L, 
277L, 195L, 751L, 80L, 851L, 38L, 179L, 808L, 635L, 304L, 617L
)), row.names = c(NA, -28L), class = c("data.table", "data.frame"
))

我正在尝试创建一个分组条形图,每个条形上方都有文本标签。 方法如下:

  # create grouped barchart 
  ggplot(dataExample, aes(x = startYear, y = n)) +
    geom_col(aes(color = as.factor(region1), 
                 fill = as.factor(region1)),
             position = position_dodge(0.8), width = 0.7)+
    geom_text(aes(startYear, label = n),
            position = position_dodge(0.8), width = 0.7)

不幸的是,我无法让我的标签对齐。 这是我得到的:

在此处输入图像描述

如何调整 position,使标签在它们应该在的位置?

您需要对geom_text美学进行分组:

ggplot(dataExample, aes(x = startYear, y = n)) +
    geom_col(aes(color = as.factor(region1), 
                 fill = as.factor(region1)),
             position = position_dodge(0.8))+
    geom_text(aes(startYear, label = n, group=as.factor(region1)),
            position = position_dodge(0.8))

(请注意,我删除了导致错误的witdh选项)

暂无
暂无

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

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