目次(まとめ)

  • ◾️ 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を使って、グラフなどのプロットの上に点や線を描く方法を紹介しました。基本的な関数で忘れがちなのですが、覚えておくと便利です。

B!