ボックスプロットは、ggplot2 パッケージの geom_boxplot
関数を利用して描く。geom_boxplot
と geom_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)
ボックスプロットと点プロットの重ね描き
ボックスプロットとデータの実際の値を重ねて表示することもできる。このとき、geom_boxplot
と geom_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)