logo
生物科学研究所 井口研究室
Laboratory of Biology, Okaya, Nagano, Japan
Home

箱ひげ図とジッタープロット(データ点表示): 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 のとおりである。

箱ひげ図とジッタープロット,ggplot2 利用

図 2. 箱ひげ図とジッタープロットの重ね合わせ.ggplot2 と R 組み込みの iris データ使用.

なお,統計ソフトによって,あるいは,同じソフトでも,利用する関数によって,四分位数の定義が異なり,箱ひげ図が異なる場合があるので,注意が必要である。

関連サイト

Home