Rのplot()関数の理解 – グラフのプロットの基礎

このチュートリアルでは、まずRのplot()関数を使った基本的な内容を理解しましょう。R言語は美しいグラフィックスと、あらゆる種類のグラフを作成・フォーマットするための豊富な関数セットで知られており、plot()関数はその中でもグラフを作成するのに役立つ関数のひとつです。

Rのplot()関数は、単一の定義された関数ではなく、関連する関数のファミリーのプレースホルダーです。呼び出される具体的な関数は、使用されるパラメータに依存します。単純にplot()関数を使用すると、2つのベクトルを互いにプロットします。

plot(c(1,2,3,4,5),c(1,4,9,16,25))

これにより、y = x^2の簡単なプロットが得られます。

Square plot in R

Rのplot()関数を使用してグラフの外観を変更する

Rのplot()関数は、複数の方法でカスタマイズしてより複雑で目を引くプロットを作成することができます。

  1. マーカーの形状: プロットのマーカーはデフォルトで小さな空の円です。これらはプロット文字とも呼ばれ、pchで示されます。plot関数に新しいpchの値を追加することで、これらを変更することができます。pchの値0から25までが有効であり、グラフ上にいくつかの異なるシンボルを表示します。pch 0は四角形、1は円、3は三角形、4は十字などです。
  2. プロットマーカーのサイズ:グラフのこの側面は、cexパラメータを使用して制御できます。マーカーを50%小さくしたい場合は、cexパラメータを0.5に設定し、50%大きくしたい場合は1.5に設定します。
  3. プロットマーカーの色:シンボルには1つまたは複数の色を割り当てることができます。これらの色は、Rのcolors()関数で提供されるリストから選択できます。
  4. 点を線で接続する:表示された点をさまざまな種類の線で接続する必要がある場合があります。これは、プロット関数のtype属性を使用して行うことができます。type属性が ‘p’ に設定されると、点のみが表示され、 ‘l’ に設定されると線のみが表示されます。同様に、 ‘b’ および ‘o’ の値は、点を接続し、点をオーバーレイするために使用されます。ヒストグラムのような表示を取得するには、 ‘h’ オプションが使用され、ステップオプションには ‘s’ が使用されます。
  5. ラインの変更:ラインタイプは、ltyパラメータ(範囲0〜6)で指定でき、ライン幅はlwdパラメータで設定されます。

これまで学んだことを使って、いくつかのグラフを作成してみましょう。

まず、サイン波プロットを生成してみましょう。xを-πからπまでの値のシーケンスベクトルとし、0.1の間隔でyにはxの対応するサイン値が含まれています。今度はyをxに対してプロットしてみてください。

x=seq(-pi,pi,0.1)
y=sin(x)
plot(x,y)
Sine wave

さて、シンボルと色を変更してみましょう。

plot(x,y,pch=c(4,5,6),col=c('red','blue','violet','green'))

これで、コンパイラがグラフをマークするために3つの異なるシンボルと4つの異なる色から選択できるようになりました。どのようになるか見てみましょう。

Colorful Sinewave

R also allows combining multiple graphs into a single image for our viewing convenience using the par() function. We only need to set the space before calling the plot function in our graph.

#1行2列のプロットウィンドウを設定します。
par(mfrow=c(1,2))
plot(x,y,type='l')
plot(x,y,pch=c(4,5,6),col=c('red','blue','violet','green'))
Combining Plots In R

A few more graphs using various options from above are illustrated below.

#2行3列のスペースを設定します。
par(mfrow=c(2,3))

#さまざまなオプションを使用してグラフをプロットします。
plot(x,cos(x),col=c('blue','orange'),type='o',pch=19,lwd=2,cex=1.5)

plot(x,x*2,col='red',type='l')

plot(x,x^2/3+4.2, col='violet',type='o',lwd=2,lty=1)

plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lty=3,col='pink',lwd=4)

plot(x<-seq(1,10,0.5),50*x/(x+2),col=c('green','dark green'),type='h')

plot(x,log(x),col='orange',type='s')

結果のグラフは次のようになります。

Multiple Plots In R

Rのplot()関数でグラフに追加情報を追加する

グラフには説明を含むノートや情報があるとより完全に見えます。これにはチャートと軸のタイトル、グラフの凡例が含まれます。時にはデータポイントにラベルを付けることも必要です。では、Rのグラフにこれらを追加する方法を見てみましょう。

  1. メインタイトルは、plot関数のmainオプションを使用して追加されます。フォント、色、サイズは、font.maincol.maincex.mainを使用してカスタマイズできます。
  2. 軸のタイトルは、xlabとylab属性を使用して指定します。これらは、font.labcol.labcex.labを使用して上記のようにカスタマイズできます。
  3. プロット内に追加のテキストを追加するには、text属性を使用して、使用するテキストと表示する座標を指定します。
  4. text属性は、データポイントにラベルを付けるためにも使用できます。この場合、テキストは文字列ではなくラベルのベクトルです。
  5. 凡例は、Rのlegend()関数を使用してグラフに追加することができます。凡例は、座標、テキスト、および解釈するシンボルを入力として受け取ります。

これを示す例を見てみましょう。

#色でタイトルを表示する
plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lty=3, col='pink',lwd=4,main="This is a graph",col.main='blue')
Graph With A Title
#xlabelとylabelを追加した同じグラフ

> plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lt=3,col='pink',lwd=4,main="This is a graph",col.main='blue',xlab="Time",ylab="Performance")
Graph With Title And Labels

テキスト属性を使用して、グラフの各データポイントにラベルを追加しましょう。

labelset <-c('one','three','five','seven','nine','eleven')
x1<- c(1,3,5,7,9,11)
y1 <- c(2,7,5,10,8,10)
plot(x1,y1,type='o',lty=3,col='pink',lwd=4,main="This is a graph",col.main='blue',xlab="Time",ylab="Performance")
text(x1+0.5,y1,labelset,col='red')
Graph With Data Labels

最後に、legend()関数を使用して上記のグラフに凡例を追加しましょう。

> legend('topleft',inset=0.05,"Performace",lty=3,col='pink',lwd=4)

位置は、x座標とy座標または「topleft」や「bottomright」のような位置を使用して指定することができます。Insetは、凡例ボックスをグラフの内側に少し移動させることを意味します。結果のグラフには凡例が表示されます。

Graph With Legend

グラフの重ね合わせ

R also allows two graphs to be displayed on top of each other instead of creating a new window for every graph. This is done by calling a lines() function for the second graph rather than plot() again. These are most useful when performing comparisons of metrics or among different sets of values. Let us look at an example.

x=seq(2,10,0.1)
y1=x^2
y2=x^3
plot(x,y1,type='l',col='red')
lines(x,y2,col='green')
legend('bottomright',inset=0.05,c("Squares","Cubes"),lty=1,col=c("red","green"),title="Graph type")
Overlaid Graph With Legend

プロットに線を追加する

直線は、単純な abline() 関数を使って既存のプロットに追加できます。abline() 関数は4つの引数、a、b、h、およびvを取ります。変数aとbは傾きと切片を表し、Hは水平線のy座標を、vは垂直線のx座標を表します。

これを明確にするために、例を見てみましょう。これらの3つの文を実行してみてください。上記の四角形と立方体のグラフを作成した後で。

abline(a=4,b=5,col='blue')
abline(h=c(4,6,8),col="dark green",lty=2)
abline(v=c(4,6,8),col="dark green",lty=2)
Graph With Lines

最初の青い線は、指定された傾きと切片で構築されます。次に、点線スタイルで指定されたxとyの値で3組の水平線と垂直線が描かれます。これは、lty=2 によって示されるものです。

これで、Rのplot関数の基本がわかりました。ggplot2などの他のパッケージと組み合わせると、Rは最も見栄えの良いダイナミックなグラフィックスを構築します。後のチュートリアルで見ていくように。

Source:
https://www.digitalocean.com/community/tutorials/plot-function-in-r