r - ggplot:使用 cut() 时如何在直方图条形图顶部添加计数数



我正在尝试弄清楚如何在直方图箱的顶部添加计数,因为我也使用 cuts()。

年龄是我的数据集中的变量之一(连续,范围 23~99),我需要生成一个包含 8 个箱的直方图,每个箱表示一个组合年龄组(<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)

最新更新