问题描述
我的数据看起来像这样:
structure(list(region1 = structure(c(1L,1L,2L,3L,4L,5L,6L,7L,7L),.Label = c("Location1","Location2","Location3","Location4","Location5","Location6","OTHERS"),class = "factor"),startYear = c(2016,2017,2018,2019,2016,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),width = 0.7)
不幸的是,我无法让我的标签对齐。这是我得到的:
如何调整位置,使标签位于它们应该在的位置?
解决方法
您需要对 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
选项)