Rを用いて作図をする中で、最も使われるのはplot()ではないかと思います。
本記事ではplot()について基礎的な使い方から引数の詳細な説明まで記載したいと思います。
基本的な使い方
まず、初めに以下のようなコードを入力し、疑似のデータフレームを作成しました。
dat<-data.frame(row.names=c(1:10),a=seq(2,20,2),b=rnorm(10,0,1))
#seqは連続した数を出力する関数 「seq(始点,終点,間隔)」
#rnormは指定した正規分布に沿った乱数を作成する関数「rnorm(生成する個数,平均,分散)」
dat
a b
1 2 -1.0759682
2 4 0.6158815
3 6 -0.2326798
4 8 2.4103644
5 10 -0.3764914
6 12 1.2686013
7 14 0.3062202
8 16 -2.5810797
9 18 0.8598233
10 20 -0.4000913
このデータを用いてplot関数を使っていきたいと思います。
まず、基本的な使い方として散布図を作成します。
散布図は plot(x軸に指定したい変数,y軸に指定したい変数) と入力することにより、出力されます。
plot(dat$a,dat$b)
このように散布図が作成されます。
(先ほどのコードを入力して疑似データフレームを作成した方は、乱数は入力する都度に出力されるため上記のグラフとは違う結果になっていると思います!)
次の章では折れ線グラフなど、他のタイプのグラフの作図方法について説明します。
グラフのタイプを指定する引数 “type”
plot関数では”type”という引数を追加することによってさまざまなグラフを作成することができます。
使い方としては type=”グラフを指定する一文字のアルファベット” をplotのカッコ内に入力します。
例) plot(dat$a,dat$b,type="p")
グラフを指定する一文字のアルファベットは以下の表のとおりです。
このようにplot関数ではtypeを指定することによってさまざまなグラフを作成することができます。
ほかにも箱ひげ図や棒グラフなどのグラフの種類があると思います。
これらのグラフはplotとは異なる関数を用いることによって作成することができます。
この方法については今後、説明する記事を作成します。
タイトル、サブタイトルの指定 “main”,”sub”
plot関数ではタイトル、サブタイトルを指定する引数として”main”,”sub”が用意されています。
使い方としては main=”加えたいタイトル”、sub=”加えたい文章” とplotのカッコ内に入力します。
例)plot(dat$a,dat$b,main="plot関数の使い方",sub="図. plot関数による散布図")
例の通りに入力すると以下のような図が出力されます。
タイトルは図の上に、サブタイトルは図の下に表示されます。
軸ラベルを指定する引数 “xlab”,”ylab”
グラフを作成したら忘れてはいけないのは軸ラベル
忘れると必ず修正が入ってしまいます、、、
デフォルトではplot関数で指定した二つの変数の列名がデフォルトで入っています。
もちろん、列名を変更することによっても軸ラベルを修正することはできますが、ちょっと面倒です 、、、
そこでplot関数の引数を利用することで簡単に変更することができます。
plot関数では軸ラベルを指定する引数として”xlab”,”ylab”が用意されています。
使い方としては xlab=”x軸ラベル”、ylab=”y軸ラベル” とplotのカッコ内に入力します。
例) plot(dat$a,dat$b,xlab="要素a",ylab="要素b")
例の通りに入力すると以下のような図が出力されます。
このように軸ラベルを変更することができます。
軸メモリを対数表示にする引数 “log”
グラフの軸メモリを対数表示にしたいときは多々あります。
plot関数では軸メモリを対数表示にする引数として”log”が用意されています。
使い方としては log=”対数表示にしたい軸” とplotのカッコ内に入力します。
例)
plot(dat$a,dat$b,log="x") #x軸のみを対数表示にしたいとき
plot(dat$a,dat$b,log="y") #y軸のみを対数表示にしたいとき
plot(dat$a,dat$b,log="xy") #両方の軸を対数表示にしたいとき
例の通りに入力すると以下のように軸メモリが対数表示されたグラフが表示されます。
plot関数には上記の引数のほかにグラフの軸メモリのアスペクト比を変更する”asp”という引数が用意されております。
これはy軸メモリのx軸メモリに対する比を入力するものですが、この後説明するグラフィックパラメーターに含まれる”xlim”,”ylim”を利用した方が便利な気がするため、割愛させていただきます。
気になる方は以下のRのヘルプを参照してください。
R: The Default Scatterplot Function
plot関数でよく使うグラフィックパラメーター
まず、グラフィックパラメーターとはRで図を作成するときに
色やサイズなどの調整や位置を指定できる引数です。
plot関数のみならず、そのほかの作図をする関数にも適用することができます。
本章ではそのグラフィックパラメーターのうち、plot関数でよく使われる以下のパラメーターを使って様々な作図例を紹介したいと思います。
- pch、lty (プロットの種類、線の種類を指定)
- col(色の指定)
- cex(大きさの指定)
- xlim、ylim(軸メモリの限界値の指定)
他のグラフィックパラメーターについて気になる方は以下のRのヘルプを参照してください。
R: Set or Query Graphical Parameters
例1:プロットの色と種類、大きさを変更した散布図
プロットの色は”col”、種類は”pch”、大きさは”cex”で調整することができます。
使い方としては col=”指定したい色(redやgreenなど)”、pch=プロットの種類を指定した数字(1~25)、cex=大きさの倍率 とplotのカッコ内に入力します。
なおpchのプロットの種類を指定した数字の表はRのヘルプ(R: Add Points to a Pl)を参照すると以下の通りです。
例えば以下のようなコードを入力します。
plot(dat$a,dat$b,type="p",col="red")
plot(dat$a,dat$b,type="p",cex=2)
plot(dat$a,dat$b,type="p",pch=15)
すると以下のようにプロットの色が赤色に変更された図、プロットの大きさが二倍になった図、プロットの種類が変更された図が出力されます。
これらのグラフィックパラメーターは重複して使用することも可能です。
例えば以下のようにコードを入力すると
plot(dat$a,dat$b,type="p",cex=2,col="green",pch=19)
以下のように色と種類、大きさが変更されたグラフが出力されます。
この手法を活用することで二群のデータの散布図を重ねて表示することも可能です。
この方法については以下の記事で紹介しております。
例2: 線の色と種類を変更した線グラフ
線の色は先ほどと同様に”col”、種類は”lty”で調整することができます。
使い方としては col=”指定したい色(redやgreenなど)”、lty=線の種類を指定した数字 とplotのカッコ内に入力します。
なおltyの線の種類を指定した数字の表は1~8までだと以下の通りになります。
例えば以下のようなコードを入力します。
この二つについても先ほどと同様に重複して使うことができます。
plot(dat$a,dat$b,type="l",col="blue")
plot(dat$a,dat$b,type="l",lty=2)
plot(dat$a,dat$b,type="l",col="orange",lty=4)
すると以下のように線の色が青色に変更された図、線の種類が変更された図が出力されます。
軸メモリの範囲を指定したグラフ
グラフを作る際に軸メモリの範囲の調整が必要である場合があります。
本記事で記載している図でも凡例とプロットが重なっているものが一部あり、このような場合は本来は修正すべきだと思います。
軸メモリの範囲の調整はx軸は”xlim”,y軸は”ylim”で調整することができます。
使い方としては xlim=c(範囲の始点,範囲の終点)、ylim=c(範囲の始点,範囲の終点) とplotのカッコ内に入力します。
例えば以下のようなコードを入力します。
plot(dat$a,dat$b,type="p",xlim=c(0,30))
plot(dat$a,dat$b,type="l",ylim=c(-4,4))
plot(dat$a,dat$b,type="b",xlim=c(0,30),ylim=c(-4,4),col="gray",lty=4,pch=19,cex=2)
すると以下のように軸メモリの範囲が指定された図が出力されます。
三つめはこれまで紹介したグラフィックパラメーターをフルに活用してみました。
このように重複して利用することもできます。
おわりに
本記事ではplot関数はどのように使うのか、どんな引数があるのかについて紹介しました。
plot関数だけでも様々な図を作成することができるため非常に便利だと思います。
今後、他の棒グラフや箱ひげ図の作成方法やグラフィックパラメーター、レジェンドについての記事も公開できればと考えております。
凡例についての記事、公開しました(legend関数の使い方 ~グラフに凡例を表示する~【R備忘録】 - ウキゴリラの巣)
私の記事が皆様の力添えになれば幸いです。
コメント