r - ggplot:使用cut()时如何在直方图条顶部添加计数
问题描述
我试图弄清楚如何在直方图箱顶部添加计数,因为我也使用了 cut()。
年龄是我数据集中的变量之一(连续,范围 23~99),我需要生成一个包含 8 个 bin 的直方图,每个 bin 表示一个组合年龄组(<30、30-39、40-49、50- 59、60-69、70-79、“80-89”、“90-99”)。
除了在每个垃圾箱顶部添加计数之外,我能够找出所有内容的代码。
我通常用于添加计数的代码是这样的:
geom_text(stat= "count", aes(label=..count..), vjust=-1, size=3)
+ ylim(c(0,300))
但是,我认为 stat="count" 在这种情况下不起作用。
除了最后两行(我尝试添加计数)之外,我在下面显示的代码工作正常。
感谢大家的帮助!!
output <- cut(df$age, breaks = seq(20,100, by= 10), labels = c("
<30","30-39","40-49", "50-59","60-69","70-79","80-89","90-99"))
table(output) %>%
as.data.frame() %>%
ggplot(aes(x = output, y = Freq, fill=output)) +
geom_col() +
scale_fill_manual(values=c("firebrick1", "chocolate1",
"yellow1", "springgreen3", "steelblue1",
"navyblue", "darkorchid1", "darkmagenta"),
name="Age group",
labels=c("<30","30-39","40-49", "50-59",
"60-69","70-79","80-89","90-99")) +
theme(legend.title = element_blank()) +
theme(legend.position = "none") +
labs(title="Histogram for Age") +
labs(x="Age Group", y="Frequency") +
theme(plot.title = element_text(hjust = 0.5)) +
geom_text(stat= "count", aes(label=..count..), vjust=-1,
size=3) +
ylim(c(0,300))
Error: stat_count() must not be used with a y aesthetic.
解决方案
您不需要使用 计算频率stat = "count"
,您的数据中已经包含它们,实际上您已经在 中使用它们aes(x = output, y = Freq, fill=output)
。所以你可以这样做:
geom_text(aes(label=Freq), vjust=-1, size=3)
推荐阅读
- sql - PostgreSQL:没有函数匹配给定的名称和参数类型。每周用户登录队列分析
- testing - Redis 缓存与 Django Rest 框架测试
- react-native - React Native Navigation:从 React 组件外部导航到屏幕
- python - 使用 DotExporter 渲染自定义类节点树
- c++ - “致命错误:curses.h:没有这样的文件或目录”在 Linux/Ubuntu 上使用 g++ 编译器
- html - 项目文件夹上的 Bootstrap 迁移 3 到 4
- css - 如何在点击日期删除焦点边框
- php - Amazon EC2 服务器之间的 Http GET 请求
- visual-studio - “Mk4tcl_Init”:不允许定义 dllimport 函数
- azure - 如何检索 Powershell 属性/对象