gpt4 book ai didi

r - 如何在ggplot中标记每组的最小值和最大值?

转载 作者:行者123 更新时间:2023-12-04 08:20:31 27 4
gpt4 key购买 nike

我有一个数据集,计算每年每月发布的帖子数。看起来像这样:

   monthdate   year     n
<date> <dbl> <int>
1 2020-01-01 2001 133
2 2020-01-01 2002 129
3 2020-01-01 2003 149
4 2020-01-01 2004 96
5 2020-01-01 2005 94
6 2020-01-01 2006 109
7 2020-01-01 2007 158
8 2020-01-01 2008 138
9 2020-01-01 2009 83
( monthdate 作为日期仅用于在 ggplot 中呈现月份名称)。
所以生成的图是这样生成的:

posts %>% mutate(monthdate = as.Date(paste("2020", month, '01', sep = "-"))) %>%
group_by(monthdate, year) %>% summarise(n = n()) %>%
ggplot(aes(x = monthdate, y = n)) +
geom_point(, stat = 'identity') +
geom_smooth(method = "loess") +
scale_x_date(date_breaks = "1 month", date_labels = "%b")

看起来像这样:
plot per month
我想为最顶部和最底部的异常值提供年份标签,因此每个月都可以看到哪一年产生的帖子最少和最多。什么是有效的方法?

最佳答案

好的,我找到了解决方案。很简单:


posts %>% mutate(monthdate = as.Date(paste("2020", month, '01', sep = "-"))) %>%
group_by(monthdate, year) %>% summarise(n = n()) %>% group_by(monthdate) %>% mutate(lab=case_when(n==max(n)|n==min(n)~year))%>%
ggplot(aes(x = monthdate, y = n)) +
geom_point(, stat = 'identity') +
geom_smooth(method = "loess") +
scale_x_date(date_breaks = "1 month", date_labels = "%b") +
xlab('Month')+
ylab('Number of posts')+ geom_text(aes(label=lab))


结果图是:
resulting plot

关于r - 如何在ggplot中标记每组的最小值和最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65519449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com