経済統計の使い方
統計初心者の社会人向けに、経済データの解説をしています。「まとめページ」をご覧くだされば、全体的な内容がわかると思います。
統計ソフト

R グラフの描き方ーplot関数

グラフにはいろいろな描き方があります。plot関数について、いろいろと試してみます。さまざまな散布図が描けます。折れ線グラフを描くこともできます。折れ線グラフについては、matplot関数も便利です。

データフレームの作成

データフレームは、変数の数に応じて用意します。変数が3つある場合は以下です。

 df3 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10),"C"=c(4,5,6,4,3,2))
df3
  A  B C
1 2  2 4
2 8  3 5
3 4  6 6
4 4  5 4
5 2  7 3
6 7 10 2

plot関数の基本

plot関数の引数として代表的なものは以下です。

plot(x=横軸のデータ,y=縦軸のデータ)

x=,y=は省略できるので、データフレーム名を入れればグラフを描いてくれます

変数が1つの場合

変数が一つだけのデータフレームを作って、plot関数を使うと下記のようなグラフになります。データがある場所にマークがあります。頻度は関係ないようで、ヒストグラムではありません。

df1 <- data.frame("A"=c(2,8,4,4,2,7))
plot(df1)
変数が1つのデータフレームで描いた場合

変数が2つ以上のデータフレームから、データを1つ選んでplot関数を使うと、x軸がインデックスのグラフになります。

df2 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10))
plot(df2[,1])
2変数のデータフレームから1変数を選んで描いた場合

type=”l”(小文字のエル)を付けて、点をつなげば折れ線グラフになります。

df2 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10))
plot(df2[,1],type="l")
2変数のデータフレームから1変数を選んで描いた場合(折れ線付き)

変数が2つの場合

変数が2つの場合は、2つの変数の散布図になります。x、yをそれぞれ指定する形でも、データフレームに2つ分のデータを指定する場合でも同じグラフが描けます。

df2 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10))
plot(df2[,1],df2[,2])

2つの変数が入っているデータフレームを指定した場合

df2 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10))
plot(df2)

2つの変数が入ったデータフレームで描いた場合

x軸に年や月などの時間を指定して、type=”l”を使えば、時系列のグラフも描けます。Aの値を年にした例です。しかし、2つ以上の系列を示すのは難しそうです。

df2 <- data.frame("A"=c(2015,2016,2017,2018,2019,2020),"B"=c(2,3,6,5,7,10))
 plot(df2,type="l")

データAが年ラベルの場合

変数が3つ以上の場合

df3 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10),"C"=c(4,5,6,4,3,2))
 plot(df3)

変数が3つ以上の場合は、すべての組み合わせについて、散布図を描きます。

データフレームの変数が3以上の場合

折れ線グラフはmatplot関数

折れ線グラフを描くには、matplot関数が便利です。

df3 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10),"C"=c(4,5,6,4,3,2))
matplot(df3)

データフレームだけ指定した場合

データフレームだけを指定すると、点がプロットされるだけなので、type=”l”(小文字のエル)を加えます。

df3 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10),"C"=c(4,5,6,4,3,2))
matplot(df3,type="l")

データフレームとtype=”l”を指定した場合

x軸にラベルにつけるのはちょっと面倒

matplot関数は、データを指定するだけで折れ線グラフを描いてくれるので便利です。しかし、x軸がインデックス(1から順番についた番号)だとわかりにくい場合があります。そこで、行に名前をつけて、それを表示することにします。rawnamesで行に名前を付けることができます。

df3 <- data.frame("A"=c(2,8,4,4,2,7),"B"=c(2,3,6,5,7,10),"C"=c(4,5,6,4,3,2))
> rownames(df3) <- c("2015", "2016", "2017","2018","2019","2020")
> df3
     A  B C
2015 2  2 4
2016 8  3 5
2017 4  6 6
2018 4  5 4
2019 2  7 3
2020 7 10 2

行の名前をx軸に表示するには、まず軸のないグラフを描いて、axis関数でx軸、y軸を描き加えます。x軸が1,y軸が2、1から6までの要素について名前を付けるという指示です。

matplot(df3,axes=FALSE,type="l")
axis(1,1:6,rownames(df3))
axis(2)

COMMENT

メールアドレスが公開されることはありません。

CAPTCHA