Hug*_*ugo 5 r ggplot2 plyr boxplot geom-text
我正在尝试在 geom_box 图上添加极值(异常值与否)的标签。我发现了这个问题,它几乎与我的 [ geom_boxplot 中的极值标签 ggplot2 ]完全相似yonicd提供的答案几乎对我有用:
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)
Run Code Online (Sandbox Code Playgroud)
很明显,我只需要将 [ $out] 替换为
df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$out))
Run Code Online (Sandbox Code Playgroud)
有极值而不是异常值。如果我使用
df_bound=df%.%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$stats))
Run Code Online (Sandbox Code Playgroud)
异常值的标签不会出现。如果能解决怎么办?
因此,代码适用于最新版本的 dplyr:将%.%
运算符更改为 magrittr pipeline %>%
。添加了 [c(1,5)],它对 boxplot.stats$stats 中晶须的“下”和“上”极值进行了子集化。
df_bound <- df%>%group_by(id)%>%do(.,data.frame(val=boxplot.stats(.$val)$stats[c(1,5)]))
归档时间: |
|
查看次数: |
616 次 |
最近记录: |