-
目次(まとめ)
- ◾️ plotrixパッケージを使ってグラフの軸の範囲を省略する
- ◾️ ギャップのある棒グラフを表示する
- ◾️ ギャップのある箱ひげ図を表示する
- ◾️ ギャップのある散布図(折れ線グラフ)を表示する
ギャップのあるデータをプロットするときに、軸の範囲を省略して表示したいです。どうやって軸の範囲を省略することができますか?
以前の記事でも紹介した "plotrix" パッケージを使って簡単に軸の範囲を省略してプロットすることができます。
今回の記事では、軸の範囲を省略して、棒グラフ、箱ひげ図、散布図を描く方法を紹介します。
plotrixパッケージを使ってグラフの軸の範囲を省略する
plotrixパッケージは、他のRのパッケージと同じように、以下のようにインストールすることができます。
> install.packages("plotrix")
インストールしたパッケージを使いたい場合には、以下のように実行します。
> library(plotrix)
plotrixパッケージには、さまざまな図を描くための関数が多数準備されています(例:レーダーチャートの書き方はこちらの記事をご参照ください)。
ギャップのあるデータをグラフで表示するときに、軸を省略するためには、以下のような関数が用意されています。
gap.barplot:ギャップのある棒グラフを表示する
gap.boxplot:ギャップのある箱ひげ図を表示する
gap.plot:ギャップのある散布図(折れ線グラフ)を表示する
ギャップのある棒グラフを表示する
ここでは、ギャップのあるデータを準備するため、標準正規分布にしたがう乱数に適当な数字を足し合わせます。
> num_1 <- rnorm(10) + 5
> num_1
[1] 4.969097 5.739008 3.960372 3.218707 4.659795 5.168881 4.742564 5.871701
[9] 6.431957 3.797239
> num_2 <- rnorm(10) + 20
> num_2
[1] 19.03748 20.99799 21.09430 20.27593 21.32505 20.00196 18.75208 21.40179
[9] 20.36661 19.64472
これらの数字を通常の "barplot" 関数を使って棒グラフで表示しようとすると、以下のようになります。
> barplot(c(num_1, num_2))
> box() # プロット全体を枠線で囲む
この図からわかるように、20本の棒のうち、10本ずつ違う範囲の数字になっています。
つまり、20個の数字に "ギャップ" があるということです。
そこで、"plotrix" パッケージの "gap.barplot" 関数を使って、ギャップ範囲を指定して棒グラフを描きます。
基本的には、以下のように実行します。
> gap.barplot(c(num_1, num_2), gap=c(10, 15), ytics=c(0, 5, 8, 17, 20), col = rep("gray",20))
"ytics" オプションで、Y軸の目盛を表示する座標を指定しています。
ギャップのある箱ひげ図を表示する
上で使用したデータを使って、ギャップのある箱ひげ図を描くためには、"gap.boxplot" 関数を使用します。
> gap.boxplot(num_1, num_2, gap = list(top=c(10, 15), bottom=c(NA, NA)))
"gap.boxplot" 関数では、"gap.barplot" 関数と同じように、"gap" オプションで省略する範囲を指定しています。
"top" と "bottom" に対して、2つの省略範囲を指定することができますが、1つしか省略範囲がなければ、片方は "c(NA, NA)" で指定します。
これを実行すると、以下のように表示されます。
しかし、このやり方だと、指定した軸の範囲の省略はできていますが、目盛が表示されません。
表示させるためには、例えば、以下のように実行します。
> gap.boxplot(num_1, num_2, gap = list(top=c(10, 15), bottom=c(NA, NA)))
> par(new = T)
> gap.boxplot(num_1, num_2, gap = list(top=c(NA, NA), bottom=c(10, 15)))
ギャップのある散布図(折れ線グラフ)を表示する
上で使用したデータを使って、ギャップのある散布図(折れ線グラフ)を描くためには、"gap.plot" 関数を使用します。
> x <- c(num_1, num_2)
> y <- c(num_1, num_2)
> gap.plot(x, y, gap = c(10, 15), gap.axis = "y", ytics = c(0, 5, 8, 17, 20))
"gap" を指定するときに、X軸とY軸のうちどちらの軸を省略するのかを指定するために "gap.axis" を使用しています。
折れ線グラフの場合は、"type = "b"" オプションをつければOKです(詳しくはこちらの記事をご参照ください)が、ギャップ間は線で結ばれないので注意してください。
> gap.plot(x, y, gap = c(10, 15), gap.axis = "y", ytics = c(0, 5, 8, 17, 20), type = "b")
今回の記事では、さまざまなプロットで軸を省略する方法を紹介しました。基本的には、通常のプロット関数に "gap" をつけることで描くことができます。