当轴受限时ggplot stat_summary

时间:2016-11-04 04:42:53

标签: r ggplot2

使用stat_summary获取均值& ci与情节一起绘制在阴谋上

p1 <- ggplot(data=df, aes(x=group, y=metric ) ) +
  geom_boxplot(outlier.shape = NA, fill = fill, color=line, alpha = 0.5) +
  stat_summary(fun.data=mean_cl_normal, aes(color = "Mean and CI"))

除此之外,我还要求限制y轴以避免显示超出范围的值。这是通过

完成的
p1 <- p1 + scale_y_continuous(limits =c(lower.limit,upper.limit) )

然而,观察结果是,当应用限制时,图中所示的平均值与不应用限制的情况不同。这是预期的方式吗?看起来stat_summary只包含通过scale_y_continuous

应用的限制内的点数

有没有办法可以得到平均值和&amp; ci使用stat_summary包括图中极限以外的点,即使应用了轴限制?

1 个答案:

答案 0 :(得分:3)

如果您提供可重复的示例数据示例,则更容易为您提供帮助。我想你想要的是coord_cartesian()

?lims说;
  

不在此范围内的观察将完全丢弃而不是   传递给任何其他图层。 ......用于更改x或y轴限制   在不丢弃数据观察的情况下,请参阅coord_cartesian

set.seed(1); df <- data.frame(x = "a", y = c(rnorm(18, 12, 3), 1, 2, 3))

g <- ggplot(df, aes(x, y, fill = x)) +
  geom_boxplot(alpha = 0.5) +
  stat_summary(fun.data=mean_cl_normal, aes(x = 0.9), colour = "blue") +
  theme(legend.position = "none")

g                                          # no limits
g + scale_y_continuous(limits = c(4, 17))  # outliers are dropped 
g + coord_cartesian(ylim = c(4, 17))       # outliers aren't dropped but not printed

enter image description here enter image description here enter image description here