【问题标题】:ggplot stat_summary when axis is limited轴受限时的ggplot stat_summary
【发布时间】:2017-03-17 20:37:45
【问题描述】:

使用 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 应用的限制内的点

有没有一种方法可以使用 stat_summary 获得平均值和 ci,包括绘图中超出限制的点,即使应用了轴限制?

【问题讨论】:

标签: r ggplot2


【解决方案1】:

如果您提供带有示例数据的可重现示例,则更容易为您提供帮助。我想你想要的是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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    相关资源
    最近更新 更多