修改stat_summary只显示几点

时间:2016-07-15 19:31:41

标签: r ggplot2

目前我有下面的boxplot,stat_summary用于将每个分布的分位数显示为文本。

group = c( rep(c(1,2),100)   )
r = rnorm(200,50,63)
d = data.frame(  group = group,  r = r  )
head(d)
ggplot(data = d, aes(factor(group), r)) + 
  geom_boxplot()    +
   stat_summary(geom="text", fun.y= quantile,
               aes(label=sprintf("%1.0f", ..y..)),
               position=position_nudge(x=0.33), size=3) 

enter image description here

您可以通过fun.y= quantile看到分位数打印为文本 代码行。如何修改代码只打印中位数和最小值和最大值,以便打印3个点而不是全部5个点?

我可以创建一个函数并选择我想要的分位数

ff= function (x)
{
  return(quantile(x)[1])
}

并使用fun.y= quantile它将打印我想要的内容,但如何直接在stat_summary调用中加入fun.y?

谢谢。

1 个答案:

答案 0 :(得分:4)

fun.args添加到stat_summary,如下所示:

ggplot(data = d, aes(factor(group), r)) + 
  geom_boxplot()    +
  stat_summary(geom="text", fun.y=quantile,
               fun.args=list(probs=c(0,.5,1)),
               aes(label=sprintf("%1.0f", ..y..)),
               position=position_nudge(x=0.33), size=3)