这是条形图:
ggplot(mtcars) +
geom_bar(aes(x = reorder(factor(cyl), mpg), y = mpg), stat="identity") +
coord_flip()
我想在最后添加标签,显示每个栏中mpg的总价值。例如,4cyl看起来大约是290只眼球。我想添加一个显示确切数字的标签。
我想尝试并看看它们的外观,所以为了完整性:
我发现了this SO帖子但是却努力复制所选择的答案。这是我的尝试:
ggplot(mtcars) +
geom_bar(aes(x = reorder(factor(cyl), mpg), y = mpg), stat="identity") +
coord_flip() +
geom_text(aes(label = mpg))
哪个出错:
错误:geom_text需要以下缺少美学:x,y
如何在条形图的末端添加标签?
答案 0 :(得分:4)
通过为标签绘图生成新的data.frame,可以满足您的需求。您可以通过调整nudge_y
和angle
来自定义文字的位置。
library(dplyr)
tmp <- mtcars %>% group_by(cyl) %>% summarise(tot_mpg = sum(mpg))
tmp$cyl <- factor(tmp$cyl)
ggplot(mtcars) +
geom_bar(aes(x = reorder(factor(cyl), mpg), y = mpg), stat="identity") +
coord_flip() + geom_text(data = tmp, nudge_y = 10, angle = 270,
aes(x = cyl, y = tot_mpg, label = tot_mpg))