ggplot2を利用したボックスプロットの描き方

geom_boxplot

ボックスプロットは、ggplot2 パッケージの geom_boxplot 関数を利用して描く。geom_boxplotgeom_jitter 関数を一緒に使うことで、ボックスプロットの上に実際のデータを示す点を重ね合わせることができる。

ボックスプロットの描き方

3 種の植物から得られる種子の数を集計した仮想データをボックスプロットで表す。

library(ggplot2)
a.nseeds = rpois(30, lambda = 10)
b.nseeds = rpois(16, lambda = 16)
c.nseeds = rpois(42, lambda = 21)

x <- data.frame(
    species = c(rep("A", length(a.nseeds)), rep("B", length(b.nseeds)), rep("C", length(c.nseeds))),
    nseeds = c(a.nseeds, b.nseeds, c.nseeds)
)

g <- ggplot(x, aes(x = species, y = nseeds))
g <- g + geom_boxplot()
plot(g)
ggplot2によるボックスプロット

ボックスプロットと点プロットの重ね描き

ボックスプロットとデータの実際の値を重ねて表示することもできる。このとき、geom_boxplotgeom_jitter 関数を同時に用いる。データに外れ値が含まれると、geom_boxplot 関数によって点として描き出される。geom_jitter 関数によって描かれる点との混同を避けるために、geom_boxplot(outlier.shape = NA) として、ボックスプロットを描くときに外れ値をプロットしないようにする。

library(ggplot2)
a.nseeds = rpois(30, lambda = 10)
b.nseeds = rpois(16, lambda = 16)
c.nseeds = rpois(42, lambda = 21)

x <- data.frame(
    species = c(rep("A", length(a.nseeds)), rep("B", length(b.nseeds)), rep("C", length(c.nseeds))),
    nseeds = c(a.nseeds, b.nseeds, c.nseeds)
)

g <- ggplot(x, aes(x = species, y = nseeds))
g <- g + geom_boxplot(outlier.shape = NA)
g <- g + geom_jitter(size = 0.2)
plot(g)
ボックスプロットとjitter plotの重ね描き