R 使い方 グラフを重ねる グラフの描き方

バイオインフォ道場、くまぞうです。

Rでグラフを重ねるのは簡単です。重ねるときに、色や透明度を工夫するときれいなグラフが描けます。注意点や工夫すべきポイントをまとめます。

グラフを重ねる

複数のグラフを重ねる

グラフを重ねる時は、グラフの描画関数にaddパラメータを指定します。

例として、ヒストグラムを2つ描画して重ねました。重なり具合がわかりやすいように、色に透過率(col最後の2桁)を指定しています。

hist(
  rnorm(1000, mean=-2, sd=1), 
  xlim=c(-10, 10), ylim=c(0, 250),
  col="#ff000020",
  main="rnorm", xlab="range")

hist(
  rnorm(1000, mean=2, sd=1),
  xlim=c(-10, 10), ylim=c(0, 250),
  col="#0000ff20",
  main="rnorm", xlab="range",
  add=TRUE)

hist2

グラフを重ねる時、addパラメータを使えない場合は、par(new=T)を使います。この際、xの範囲とyの範囲をあわせるのがポイントです。それぞれxlimylimで指定します。また、この重ね方ではラベルも重なって読めなくなってしまうので、最初の描画ではann=Fの指定により表示を抑止し、後の描画でまとめてラベルを表示すると良いです。

下記の例では、グラフを識別するために線のパターンを変えました。legendで凡例も忘れずに付けましょう。

plot(sin, xlim=c(0,5), ylim=c(-1,1), ann=F)
par(new=T)
plot(cos, xlim=c(0,5), ylim=c(-1,1), lty=2, ylab="sin(x), cos(x)")
legend("topright", lty=1:2, legend=c("sin", "cos"))

1つのグラフでの重なり

散布図は点やマークで描画することが多いですが、点が重なった場合は重なり具合の情報がわかりにくくなります。マークに透明度を追加して、重なったときに濃淡の違いによって重なり度合いを示せるようになります。マークはpchで、直接指定したり、マークの番号で指定したりします。透明度は、col(色の指定)の最後で指定しています(alpha値)。alpha=0.0は透明・alpha=1.0は不透明です。

## 透明度を指定したことにより、濃淡で重なりが分りやすい
R> plot(log2(Sepal.Length) ~ log2(Sepal.Width), data=iris, col=rgb(0, 0, 0, alpha=0.1), pch=16)  

plot_alpha

One thought to “R 使い方 グラフを重ねる グラフの描き方”

コメントは受け付けていません。