目前我有下面的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)
您可以通过fun.y= quantile
看到分位数打印为文本
代码行。如何修改代码只打印中位数和最小值和最大值,以便打印3个点而不是全部5个点?
我可以创建一个函数并选择我想要的分位数
ff= function (x)
{
return(quantile(x)[1])
}
并使用fun.y= quantile
它将打印我想要的内容,但如何直接在stat_summary调用中加入fun.y?
谢谢。
答案 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)