R 使い方 散布図 工夫(透明度・グラフ並べるなど) グラフの描き方

統計処理などで2変数の関係を調べるときに、良く使われるのが散布図です。少し工夫するとより使いやすくなります。散布図の工夫についてまとめます。

散布図を描く

散布図はplot関数を使って書きます。

plot.r

R> plot(Sepal.Length ~ Sepal.Width, data=iris)
plot

散布図の工夫

点が重なった際のマークの工夫

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

plot_mark_point.r

## 透明度指定なしのため、重なりが良くわからない
R> plot(log2(Sepal.Length) ~ log2(Sepal.Width), data=iris, col=rgb(0, 0, 0))
plot_point

plot_mark_alpha.r

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

複数の散布図を並べる

散布図に限ったことではありませんが、同じ種類のグラフや異なる種類のグラフを1つのグラフ内に分割して表示したい場合があります。似たようなデータ、条件を変えたデータを比較する場合に大変便利です。そのような場合は、layoutでグラフ描画領域を分割して、それぞれに描画します。尚、x軸やy軸の表示範囲をあわせるなどすると、より見やすくなります。範囲は、xlimylim等を使って指定します。

plot_double.r

R> layout(matrix(1:2, ncol=2))  # 1行2列に分割
R> plot(Sepal.Length ~ Sepal.Width, data=iris)
R> plot(Petal.Length ~ Petal.Width, data=iris)
plot_double

複数のデータを重ねた散布図

2種類以上のデータを1つの散布図に重ねて描画します。異なるデータ・似たデータ、条件を変えたデータを比較する場合に大変便利です。種類毎のマークを、iris$Speciesfactor情報で切り替えています。凡例の表示は、legend関数を使っています。

plot_set.r

R> plot(Sepal.Length ~ Sepal.Width, data=iris, pch=as.integer(iris$Species))
R> legend("topright", legend=c("setosa", "versicolor", "virginica"), pch = 1:3)
plot_set

散布図を画像ファイルとして保存する

画面への表示だけでなく、画像ファイルとして保存することもできます。

plot_image.r

png("plot_image.png")
plot(Sepal.Length ~ Sepal.Width, data=iris, pch="+")
dev.off()
plot_image

実験データの解析や論文用グラフ作成のヒントになりそうな、プログラミング・統計処理の参考になる書籍をまとめて紹介しています。是非、参考にしてみて下さいね。



ピックアップ記事

  1. R subset関数 データフレームやmatrixからの条件指定による行・列の抽出

    R の subset関数は、データフレームやマトリックスから条件にマッチした部分集合を取り出します…
  2. tidyverse – distinct関数でデータフレームの重複行を削除 dplyrパッケージ

    tidyverseでデータフレームの重複行の削除を行う場合、dplyrパッケージのdistinct…
  3. awk split サンプルでわかる列の分割とセパレータ(文字・正規表現)の指定方法

    awkのsplit関数は、セパレータを指定して文字列を分割することができます。セパレータには文字や…

人気記事

  1. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  2. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  3. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…

おすすめ記事

  1. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  2. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  3. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…