我正在尝试弄清楚如何在直方图箱的顶部添加计数,因为我也使用 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)