-
目次(まとめ)
- ◾️ X軸とY軸の範囲を決めて、新たなプロット領域を作成する
- ◾️ 点を打つには "points" 関数、線を引くには "lines" 関数を使用する
- ◾️ 関連記事
Rで、ある座標に点を打ったり、線を引いたりするにはどうしたらいいですか?
点を打つときには "points" 関数、線を引くときには "lines" 関数を使えばOKです。
すでに別のプロットが表示されている場合には、その上に点や線が描かれますが、何も表示されていない場合には、まずプロット領域を準備しておく必要があります。
今回の記事では、プロット領域を作成して、その領域内に点や線を描く方法を紹介します。
X軸とY軸の範囲を決めて、新たなプロット領域を作成する
グラフなどを描くためのプロット領域ですが、その領域を決めるためには、X軸の範囲とY軸の範囲を与える必要があります。
ここでは、X軸の範囲を 1 ~ 16、Y軸の範囲を 1 ~ 16に設定してみます。
この範囲で、プロット領域を描くためには、以下のように、"plot" 関数を用いて実行します。
> plot(0, type="n", xlim=c(1,16), ylim=c(1,16), xlab="X", ylab="Y")
最初に "0" と書いていますが、どんな数字を設定しても問題ありません。
その他のオプションは、以下のような意味があります。
オプション | 意味 |
type = "n" | マーカーを表示させない。もし "p" を指定すれば、マーカーが表示されます。例えば「plot(5, type = "p")」と実行すれば、 (x, y) = (1, 5)の点が描かれます。ここでは、プロット領域だけを描くために、あえて、マーカーを表示させていません。 |
xlim = c(1, 16) | X軸の範囲の指定 |
ylim=c(1,16) | Y軸の範囲の指定 |
xlab="X" | X軸のラベル名の指定 |
ylab="Y" | Y軸のラベル名の指定 |
実行すると、以下のようにプロット領域だけが表示されます。
また、デフォルトでは、指定したX軸の両端、Y軸の両端に少しスペースが生じます。スペースを生じさせない場合には、"plot" 関数を実行する前に "par(xaxs="i", yaxs="i")" と実行します。
点を打つには "points" 関数、線を引くには "lines" 関数を使用する
"points" 関数で1つの点を打つためには、以下のように実行します。
> points(4, 6)
このように実行すると、(x, y) = (4, 6) の座標に点が打たれます。
また、複数の点を打つためには、以下のように実行します。
> points(c(3, 5), c(3, 8))
このように実行すると、(x, y) = (3, 3) と (x, y) = (5, 8) の座標に点が打たれます。(x, y) = (3, 5) と (x, y) = (3, 8) ではないので注意してください。
また、"points" 関数を連続して実行すると、重なってプロットされるので、新たにプロットしたい場合には、再度プロット領域から作成すればOKです。
線を描くためには、"lines" 関数を使用します。
例えば、(x, y) = (3, 3) と (x, y) = (5, 8) の座標を結ぶような線を描くためには、以下のように実行します。
# > points(c(3, 5), c(3, 8))
> lines(c(3, 5), c(3, 8))
("points" 関数を使えば、以下のような絵も書くことができます)
plot(0, type="n", xlim=c(1,16), ylim=c(1,16), xlab="X", ylab="Y") #Black par(col = "black", pch = 15) points(c(3,4,5,6,11,12,13,14), c(1,1,1,1,1,1,1,1)) points(c(4,5,6,11,12,13),c(2,2,2,2,2,2)) points(c(5,6,7,10,11,12),c(3,3,3,3,3,3)) points(c(5,6,7,8,9,10,11,12),c(4,4,4,4,4,4,4,4)) points(c(6,7,8,9,10,11),c(5,5,5,5,5,5)) points(c(5,6,8,9,11,12),c(6,6,6,6,6,6)) points(c(3,4,5,6,7,8,9,10,11,12,13,14),c(7,7,7,7,7,7,7,7,7,7,7,7)) points(c(4,5,6,7,8,9,10,11,12,13),c(8,8,8,8,8,8,8,8,8,8)) points(c(5,6,7,8,9,10,11,12),c(9,9,9,9,9,9,9,9)) points(c(4,5,10,11,12,13),c(11,11,11,11,11,11)) points(c(4,6,7,11),c(12,12,12,12)) points(c(4,6,10),c(13,13,13)) points(c(5,6,7,10,12),c(14,14,14,14,14)) points(c(5,6,7,8,9,10,11,12),c(15,15,15,15,15,15,15,15)) points(c(6,7,8,9,10,11),c(16,16,16,16,16,16)) #Hada-iro par(col = "#F7D0A9") points(c(3,4,13,14), c(4,4,4,4)) points(c(3,4,5,12,13,14), c(5,5,5,5,5,5)) points(c(3,4,7,10,13,14), c(6,6,6,6,6,6)) points(c(6,7,8,9,10,11,12), c(10,10,10,10,10,10,10)) points(c(6,7,8,9), c(11,11,11,11)) points(c(5,8,9,10,12,13,14), c(12,12,12,12,12,12,12)) points(c(5,7,8,9,11,12,13), c(13,13,13,13,13,13,13)) points(c(8,9,11), c(14,14,14))
関連記事
今回の記事では、Rを使って、グラフなどのプロットの上に点や線を描く方法を紹介しました。基本的な関数で忘れがちなのですが、覚えておくと便利です。