微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何删除或不显示箱线图和小提琴图中误差线上方和下方的任何数据点?

如何解决如何删除或不显示箱线图和小提琴图中误差线上方和下方的任何数据点?

我正在处理一个非常大的数据集,其中包含大约 160 万个数据点。我使用小提琴图和箱线图来表示每个类别的数据(有多个类别,每个类别都有自己的一组值)。

但我面临的问题是,误差线上方有很多数据点(异常值),因为图的焦点已经丢失。

之前我认为如果我在特定值之后删除所有数据点,它可能会帮助我表示我想要显示内容。但它不起作用,因为对于每个类别,误差条范围都不同,因此,我丢失了其他类别的大部分数据。

所以,现在我正在考虑删除不显示每个类别误差线上方的数据点,无论是方框图还是小提琴图。我在 outlier.shape=NA 中引入了 geom_Boxplot,它适用于箱线图。同样,我想从小提琴图中删除所有位于箱线图中误差线上方的数据点。

以下是使用 outlier.shape=NA 之前和之后的图。 前:

enter image description here


后:

enter image description here

这是我的代码

med_violin <- data %>%
  left_join(sample_size) %>%
  mutate(myaxis = fct_reorder(paste0(Country),Diff,.fun='median')) %>%
  ggplot( aes(x=myaxis,y=Diff,fill=Country)) +
  geom_violin(width=1.5,color = "black",position = position_dodge(width=1.8),trim = TRUE) +
  geom_Boxplot(width=0.2,color="white",alpha=0.01,outlier.colour="red",outlier.size=0.1,outlier.shape = NA) +
  scale_y_continuous(breaks = c(0,25,50,75,100,125,150,525,550))+
  coord_trans(y = squash_axis(150,15)) +
  theme(axis.text.x = element_text(angle = 90,hjust = 1))+
  theme(axis.text.x = element_text(size = 8))+
  theme(legend.position ="none")+
  scale_fill_viridis(discrete = TRUE) +
  xlab("")

med_violin

如何在 genom_violin 中实现相同的功能,使其也不会在误差条上方显示数据点?

我什至试过这个:Ignore outliers in ggplot2 geom_violin

但对我不起作用。

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。