问题描述
我正在根据 JHU/CSSE 生成的 time series 绘制确认的 Covid-19 比率的箱线图,我希望为所有类似的异常值设置一个唯一标签。
is_outlier <- function(x) {
return(x < quantile(x,0.25) - 1.5 * iqr(x) | x > quantile(x,0.75) + 1.5 * iqr(x))
}
所以数据看起来像这样:
county rate date outlier
<chr> <dbl> <date> <chr>
1 Jefferson,Alabama,US 0.0148 2021-01-01 NA
2 Maricopa,Arizona,US 0.0124 2021-01-01 NA
3 Santa Cruz,US 0.0199 2021-01-01 Santa Cruz,US
4 Orange,California,US 0.0145 2021-01-01 NA
5 San Bernardino,~ 0.0251 2021-01-01 San Bernardino,Californi~
6 San Diego,US 0.0129 2021-01-01 NA
7 Santa Clara,US 0.0100 2021-01-01 NA
8 Boulder,Colorado,US 0.00420 2021-01-01 NA
9 Jefferson,US 0.00505 2021-01-01 NA
10 Litchfield,Connecticut,US 0.00605 2021-01-01 NA
然后我将结果绘制如下:
library(ggplot)
library(ggrepel)
ggplot(data = confirmed_rates,aes(x = date,y = rate,group = date,label = outlier)) +
geom_Boxplot(fill="#fdc086",color="black") +
geom_text_repel() +
stat_summary(fun = mean,geom = "line",aes(group = 1,color = "#beaed4"),size = 0.8) +
theme_bw() +
theme(legend.position = "none",axis.text.x = element_text(size = 8,angle = 60,vjust = 1,hjust = 1))
结果如下: Boxplots of confirmed Covid-19 rates in certain US counties
如您所见,当我标记所有异常值时,即使使用 geom_text_repel()
,该图也非常拥挤,因此我希望大致具有类似 label = factor(outlier)
的内容,以便当一个县是多个异常值时日期,所有对应的点都将指向一个文本标签,这意味着对于所有箱线图,每个县名只会显示一次,但我不知道如何做到这一点,非常感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)