【问题标题】:modify stat_summary to show only a few point修改 stat_summary 只显示几个点
【发布时间】:2016-07-15 19:31:41
【问题描述】:

目前我有下面的箱线图,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 中?

谢谢。

【问题讨论】:

  • 只需将函数放在quantile 现在所在的位置:fun.y = function(x) quantile(x)[c(1,3,5)],或者更透明地说,fun.y = function(x) quantile(x, c(0, .5, 1))

标签: r ggplot2


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-15
    • 2023-03-03
    • 1970-01-01
    • 2018-12-07
    • 2017-01-16
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多