小编典典

忽略ggplot2箱线图中的异常值

all

我将如何忽略 ggplot2 boxplot 中的异常值?我不只是希望它们消失(即 outlier.size=0),而是希望它们被忽略,以便 y
轴缩放以显示第 1/3 个百分位数。我的异常值导致“盒子”缩小到几乎是一条线。有一些技术可以解决这个问题吗?

编辑 这是一个例子:

y = c(.01, .02, .03, .04, .05, .06, .07, .08, .09, .5, -.6)
qplot(1, y, geom="boxplot")

在此处输入图像描述


阅读 75

收藏
2022-08-20

共1个答案

小编典典

这是使用 boxplot.stats 的解决方案

# create a dummy data frame with outliers
df = data.frame(y = c(-100, rnorm(100), 100))

# create boxplot that includes outliers
p0 = ggplot(df, aes(y = y)) + geom_boxplot(aes(x = factor(1)))


# compute lower and upper whiskers
ylim1 = boxplot.stats(df$y)$stats[c(1, 5)]

# scale y limits based on ylim1
p1 = p0 + coord_cartesian(ylim = ylim1*1.05)
2022-08-20