生物科学研究所 井口研究室
Laboratory of Biology, Okaya, Nagano, Japan
箱ひげ図とジッタープロット(データ点表示): R の利用
井口豊(生物科学研究所,長野県岡谷市)
最終更新: 2022 年 9 月 22 日
1. はじめに
箱ひげ図(box plot)に,データ点を描くジッタープロット(jitter plot)を重ねて描きたいことがある。ここでは, R を利用した例を紹介する。
2. 箱ひげ図にジッタープロット重ねる R スクリプト
いろいろな方法があるが,たぶん最も簡単な方法が stripchart 関数の文字通り, method 引数 jitter を使った R スクリプトである。サンプルデータとして頻出する iris データの萼片長 Sepal.Length と種 Species を使ってみた。なお,この箱ひげ図は, schematic boxplot であり,外れ値も示している。それに関しては,別ページで解説した(箱ひげ図 skeletal と schematic,外れ値と 3 シグマ)。
#############
boxplot(
Sepal.Length ~ Species, data = iris,
outline = FALSE,
col = "white"
)
stripchart(
Sepal.Length ~ Species, data = iris,
method = "jitter",
pch = 16, col = 2:4,
vertical = TRUE,
add = TRUE
)
################
結果は,次の図 1 のとおりである。
図 1. 箱ひげ図とジッタープロットの重ね合わせ.R 組み込みの iris データ使用.
これを ggplot2 を使って描くと,以下のようなスクリプトになる。
#############
library(ggplot2)
ggplot(
iris, aes(x = Species, y = Sepal.Length,
color = Species)
) +
geom_boxplot(
outlier.shape = NA
) +
stat_boxplot(
geom = "errorbar", width = 0.2
) +
geom_jitter()
################
結果は,次の図 2 のとおりである。
図 2. 箱ひげ図とジッタープロットの重ね合わせ.ggplot2 と R 組み込みの iris データ使用.
なお,統計ソフトによって,あるいは,同じソフトでも,利用する関数によって,四分位数の定義が異なり,箱ひげ図が異なる場合があるので,注意が必要である。