[英]Boxplots by base R and ggplot2 do not match
我有一个简单的数据集。 当我分别通过基础 R 和 ggplot 为数据生成箱线图时,它们不匹配。 事实上,基础 R 箱线图与summary
function 一致。
library(tidyverse)
library(ggplotify)
library(patchwork)
df <- read.csv("test_boxplot_data.csv")
summary(df)
p1 <- as.ggplot(~boxplot(df$y, outline=FALSE))
p2 <- ggplot(df, aes(y=y)) + geom_boxplot(outlier.shape = NA) + ylim(0,100)
p1 + p2 + plot_layout(ncol = 2)
任何线索发生了什么? 同样令人惊讶的是,ggplot 会抛出警告“删除了 845 行包含非有限值 (stat_boxplot)”但数据中没有 NA。
来自:“删除了 845 行包含非有限值 (stat_boxplot)”。 恰好数据包含 845 个 > 100 的点。这些点在框 plot 的计算中被删除。
从ylim()
的第一行帮助:
“这是为单个比例提供限制参数的快捷方式。默认情况下,指定限制之外的任何值都将替换为 NA。请注意,这将删除限制之外的数据,这可能会产生意想不到的结果。对于更改 x 或y 轴限制而不丢弃数据观察,请参阅 coord_cartesian()。"
这应该提供所需的图表:
ggplot(df, aes(y=y)) + geom_boxplot(outlier.shape = NA) +
coord_cartesian(ylim=c(0,100))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.