GGPLOT:如何在百分比图的顶部显示总数

时间:2018-09-21 08:44:24

标签: r ggplot2

我想将每年的总数添加到每个栏的顶部。 我尝试使用geom_text,但输出却很奇怪。不幸的是,我不了解geom_text的工作原理,所以我不知道从哪里开始。 我见过很多其他类似问题的帖子,但是它们对我的特定情节没有帮助。如果我错过了他们的任何帮助,我想为可能的重复努力表示歉意。 有人知道如何正确指定它吗?

到目前为止可以正常运行的代码,

data1 <- data.frame(matrix(
c('Africa', 2011,   54, 1593,
'Africa',   2012,   26, 1604,
'Africa',   2013,   18, 1267,
'Africa',   2014,   20, 846,
'Central America',  2011,   30, 1593,
'Central America',  2012,   32, 1604,
'Central America',  2013,   13, 1267,
'Central America',  2014,   9, 846,
'East Asia',    2011,   1509, 1593,
'East Asia',    2012,   1546, 1604,
'East Asia',    2013,   1236, 1267,
'East Asia',    2014,   817, 846
), nrow=12, ncol=4, byrow=TRUE
))
colnames(data1)<-c('region', 'year', 'number', 'total')
data1$number <- as.numeric(levels(data1$number))
data1$total <- as.numeric(levels(data1$total))

p <- ggplot(data1,
        aes(x = year, y = number, fill = region)) + 
  geom_bar(position = "fill",stat = "identity") +
  scale_y_continuous(labels = percent_format()) +
  labs(x="Year", y="Percentage") +
  theme(panel.border = element_blank(),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(), 
    panel.background = element_blank(),
    legend.position="top",
    legend.title = element_text(size=10),
    legend.text = element_text(size=10))   
print(p)

给我奇怪输出的代码:

p + geom_text(aes(x = year, y = number, label = total))

0 个答案:

没有答案