ggplotメモ第4回です。今回はirisデータを使って箱ひげ図を描きたいと思います。irisデータの読み込みについては【ggplotメモ1】をご覧ください。
箱ひげ図は最小値、第1四分位点、中央値(第2四分位点)、第3四分位点、最大値といったデータの要約を示す図です。ここでは、品種ごとの花びらの長さについて描いてみたいと思います。
# 箱ひげ図
# ggplot2の読み込み
library( ggplot2 )
# グラフの基本設定
ggplot() + theme_set( theme_classic(base_size = 12, base_family = "Hiragino Kaku Gothic Pro W3") )
# 描画
p <- ggplot( iris, aes( x = Species, y = Petal.Length, fill = Species ) ) +
geom_boxplot() +
xlab( "品種" ) +
ylab( "花びらの長さ" ) +
scale_y_continuous( breaks = c( 0, 2, 4, 6, 8 ), limits = c( 0, 8 ) ) +
theme( legend.position = "none" )
plot( p )
グラフの基本設定を行った後、使用するデータを指定し、geom_boxplot を使って箱ひげ図を描くことを指示します。以降は縦軸と横軸の指定をしています。こうして出来上がったものがこちら。
データを指定する際(描画の1行目)に fill = Species としているので、品種ごとに色がついています。また、黒い丸は外れ値です。
中央値だけじゃなくて平均値も知りたいなという場合は、箱ひげ図の上に平均値をプロットすればいいと思います。
# 描画
p <- ggplot( iris, aes( x = Species, y = Petal.Length, fill = Species ) ) +
geom_boxplot() +
stat_summary(fun = "mean", geom = "point", shape = 21, size = 2., fill = "white") +
xlab( "品種" ) +
ylab( "花びらの長さ" ) +
scale_y_continuous( breaks = c( 0, 2, 4, 6, 8 ), limits = c( 0, 8 ) ) +
theme( legend.position = "none" )
plot( p )
先ほどのスクリプトの geom_boxplot() の後に平均値をプロットしてほしい旨を記しました。こうして出来上がったものがこちら。
平均値が白い丸でプロットされました。
最後に図を保存しておきましょう。
savePlot = function( data, name, dpi, width, height ){
ggsave( plot = data, file = name, dpi = dpi, width = width / dpi, height = height / dpi )
}
savePlot( p, "plot3.png", 300, 1500, 1500 )
今回はここまで。ありがとうございました。