1. ホーム
  2. r

[解決済み] ggplot2 の boxplot で外れ値を無視する

2022-04-24 01:30:33

質問

ggplot2 の boxplot で外れ値を無視するにはどうしたらよいでしょうか? 単に外れ値を消したいわけではなく(つまりoutlier.size=0)、Y軸が1/3パーセンタイルを表示するように外れ値を無視したいのです。 外れ値が原因で、"box"が非常に小さくなり、実質的に線になっています。 これを処理するためのテクニックはありますか?

編集 以下はその例です。

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

解決方法は?

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)