【问题标题】:extreme value labels in geom_boxplotgeom_boxplot 中的极值标签
【发布时间】:2015-08-03 00:45:09
【问题描述】:

我正在尝试在 geom_box 图上添加极值(异常值或非异常值)的标签。 我发现了这个问题,和我的几乎一模一样 [extreme value labels ggplot2 in geom_boxplot] yoncd 提供的答案几乎对我有用:

df=rbind(data.frame(id=rep("1",100),var=paste0("V",seq(1,100)),
         val=rnorm(100,0,5)),
         data.frame(id=rep("2",100),var=paste0("V",seq(1,100)),
         val=rnorm(100,0,3)))


df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$out))
df_bound=left_join(df_bound, df, by=c("id","val"))

ggplot(df,aes(x=id, y=val, fill=id, label=var)) + geom_boxplot() +
geom_point(aes(group=id), data=df_bound)+
geom_text(aes(group=id), data=df_bound, hjust=-1, size=4)

很明显,我只需要替换 [ $out] in

 df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$out))

拥有极值而不是异常值。 如果我使用

df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$stats))

不显示异常值的标签。 如果能解决这个问题呢?

【问题讨论】:

  • 我认为这是因为 conf 值(“'notch' 的下限和上限”)是计算出来的(如果我从?boxplot.stats 得到正确的话),而不是在df 中找到的值,因此连接无法工作。
  • 谢谢。我相应地更正了帖子。如果我改用 [ $stats ],标签是胡须的极值。

标签: r ggplot2 plyr boxplot geom-text


【解决方案1】:

因此代码适用于最新版本的 dplyr:将 %.% 运算符更改为 magrittr 管道 %>%。添加了 [c(1,5)],它包含 boxplot.stats$stats 中胡须的“下”和“上”极值。

df_bound <- df%>%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$stats[c(1,5)]))

【讨论】:

  • 这是对问题中所述问题的完整答案吗?它读起来更像是一条长评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-01-10
  • 1970-01-01
  • 2022-10-07
  • 1970-01-01
相关资源
最近更新 更多