33

ggplot2 / geom_boxplot を使用して、ウィスカーが 0.25 - 1.5 IQR / 0.75 + IQR ではなく 5 および 95 パーセンタイルとして定義され、それらの新しいウィスカーの外れ値が通常どおりプロットされる箱ひげ図を作成しようとしています。geom_boxplot の美学に ymax / ymin が含まれていることがわかりますが、ここに値を入れる方法がわかりません。のようです:

stat_quantile(quantiles = c(0.05, 0.25, 0.5, 0.75, 0.95))

助けることができるはずですが、この統計の結果を関連付けて適切な geom_boxplot() 美学を設定する方法がわかりません:

geom_boxplot(aes(ymin, lower, middle, upper, ymax))

ボックスプロットのようなオブジェクトを手動で本質的に構築することについて人々が言及している他の投稿を見てきましたが、描画されている2つの変数の意味を修正するだけで、ボックスプロットのゲシュタルト全体を維持したいと思います。

4

3 に答える 3

46

stat_summary を使用した geom_boxplot で実行できます。

# define the summary function
f <- function(x) {
  r <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
  names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
  r
}

# sample data
d <- data.frame(x=gl(2,50), y=rnorm(100))

# do it
ggplot(d, aes(x, y)) + stat_summary(fun.data = f, geom="boxplot")

# example with outliers
# define outlier as you want    
o <- function(x) {
  subset(x, x < quantile(x)[2] | quantile(x)[4] < x)
}

# do it
ggplot(d, aes(x, y)) + 
  stat_summary(fun.data=f, geom="boxplot") + 
  stat_summary(fun.y = o, geom="point")
于 2011-01-22T01:38:33.563 に答える