R: plot 関数を使った散布図の作り方

UB3/informatics/r/r_plot

このページの最終更新日: 2020/07/15

  1. 基本: plot を使う方法
  2. plot の散布図に直線・曲線を追加する
  3. シンボルをグループによって色分けする
  4. シンボルにラベルを追加する
  5. 複数のグラフを並べる

広告


基本: plot を使う方法

trees という組み込みのデータセットを使って作成。31 本の木について、胴回り Girth、高さ Height、容積 Volume が収められている。

data(trees) #データの読み込み
plot(trees$Volume,trees$Height)


で散布図ができる。つまりベクター x および y を用いた plot (x,y) という形が基本である。


plot に含められるパラメーターには、以下のようなものがある (1)。実際の使用例はこんな感じ。

plot(trees$Volume, trees$Height, main ="Tree Volume vs. Height", xlab="Volume, ylab="Height", col="red")


main

グラフタイトルを指定。main = "Scatter plot"

cex.main

タイトルのフォントサイズを指定。cex.main = 3

xlab, ylab

x 軸および y 軸のラベルを指定。xlab = "Percent increase"

cex.lab

x 軸および y 軸ラベルのフォントサイズを指定。font.lab = 5

font.lab

x 軸および y 軸ラベルのフォントを指定。font.lab = 5 のように数字で指定する。

xaxs, yaxs

xaxs="i" と yaxs="i" を同時に指定すると X 軸と Y 軸がそれぞれの最小値で交わるようになる。

asp

x と y のアスペクト比を指定。グラフを正方形にするオプションかと思ったが違った。x 軸と y 軸の範囲が同じになる。asp = 1

type

シンボルや線などを指定。

  • "p" - points
  • "l" - lines
  • "b" - both points and lines
  • "c" - empty points joined by lines
  • "o" - overplotted points and lines
  • "s" and "S" - stair steps
  • "h" - histogram-like vertical lines
  • "n" - does not produce any points or lines

col

色を指定。col="blue" とすると、シンボルの線が青に変わる。塗りつぶしたいときは、pch を使ってシンボルを 19 に指定。

pch

シンボルの種類を番号で指定。pch = "3" のように " " で指定すると、数字の 3 がプロットされる。pch = 3 のようにすると、以下の図からシンボルが選ばれる。この図は ggpubr というパッケージに含まれており、パッケージをインストール後に ggpubr::show_point_shapes() で出すことができる (参考)。


広告

plot の散布図に直線・曲線を追加する

lines を使うか、curve を使って add="TRUE" とする。


シンボルをグループによって色分けする

いくつか方法がある。

par で重ね書きする

par 関数は、上書き指定をする関数である。以下のように、1 つ目の散布図のあとに par(new = T) で重ね書きを指定し、2 つ目の散布図を重ね書きできる。

plot(X1, Y1, col = "black", pch = 16)
par(new = T)
plot(X2, Y2, col = "red", pch = 16)


例では X1, Y1 を黒でプロットし、X2, Y2 を赤でプロットするように指定している。ただし、この方法には 罠がある ので注意。軸は X1, Y1 と X2, Y2 の散布図で別々に設定されるが、同じグラフ上にプロットされる。つまり、このままでは正確でない図が得られてしまう。

xlim, ylim で軸の範囲を揃える必要がある。さらに、このままでは軸ラベルが両方の散布図で書かれるので、重なって表示されてしまう。X2, Y2 の方を xlab = "", ylab = "" のように軸ラベル非表示の設定にする必要がある。


シンボルにラベルを追加する

このページ に詳しい。plot したあとに maptools ライブラリーの pointLabel 関数でラベルを追加できる。


複数のグラフを並べる

plot 関数に限らないかもしれないが、とりあえずここに書いておく。

layout と split.screen を使う方法がある (2)。個人的には、出力先を指定できる split.screen の方が好みである。

split.screen(c(1,2)) # これで1行2列を指定
screen(1) # それぞれのスクリーンを指定して、グラフを作る
  plot(x1, y1)
screen(2)
  plot(x1, y1)
close.screen(1) # もとの1スクリーンに戻す


このほか、R による棒グラフの描画 も役に立つページ。


広告

References

  1. R Plot Function. Link: Last access 2020/05/30.
  2. R 使い方 複数のグラフを並べる グラフの描き方. Link: Last access 2020/05/30.
  3. Rによる散布図の描画. Link: Last access 2020/06/13.

コメント欄

各ページのコメント欄を復活させました。スパム対策のため、以下の禁止ワードが含まれるコメントは表示されないように設定しています。レイアウトなどは引き続き改善していきます。「管理人への質問」「フォーラム」へのバナーも引き続きご利用下さい。

禁止ワード: http, the, м (ロシア語のフォントです)


このページにコメント

Name:


Comment:



これまでに投稿されたコメント

Date Name Comment