【问题标题】:ggplot2 - why does changing axis scale affect summary statistics of variables? [duplicate]ggplot2 - 为什么改变轴比例会影响变量的汇总统计? [复制]
【发布时间】:2023-01-12 22:45:47
【问题描述】:

我有以下数据:

x <- data.frame('myvar'=c(10,10,9,9,8,8, runif(100)), 'mygroup' = c(rep('a', 26), rep('b', 80)))

我想在 ggplot2 中使用盒须图来描述数据。我还包括了使用 stat_summary 的平均值。

library(ggplot2)
ggplot(x, aes(x=myvar, y=mygroup)) + 
geom_boxplot() +
stat_summary(fun=mean, geom='point', shape=20, color='red', fill='red') 

这很好,但对于我的一些图表,离群值非常大,以至于很难理解总分布。在这些情况下,我切断了 x 轴:

ggplot(x, aes(x=myvar, y=mygroup)) + 
geom_boxplot() +
stat_summary(fun=mean, geom='point', shape=20, color='red', fill='red')  +
scale_x_continuous(limit=c(0,5))

请注意,现在平均值(和中位数?)是仅使用图表上可见的数据子集计算的。是否有 ggplot 方法可以将离群值包含在计算中,但将它们从可视化中删除?

我想要的输出将是一个图表,其中 x 限制为c(0,5),组mygroup='a' 的红点为 2.48。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    scale_x_continuous 将删除那些不在限制范围内的点。您想使用 coord_cartesian 来“放大”而不删除您的数据:

    ggplot(x, aes(x=myvar, y=mygroup)) + 
      geom_boxplot() +
      stat_summary(fun=mean, geom='point', shape=20, color='red', fill='red')  +
      coord_cartesian(c(0,5))
    

    【讨论】:

    • 这通常被认为是好形式还是坏形式?从情节中排除数据然后将其包含在摘要中对我来说似乎不太合适,但我对此没有信心。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2019-12-25
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    相关资源
    最近更新 更多