統計解析環境Rで一気にたくさんのグラフを描く方法 |
変数が少ない場合はよいのですが、多くなるとグラフを作成して確認するのも一苦労です。
いくつかの方法を紹介します。
「GGally」パッケージのggpairs()関数を使う方法
「GGally」パッケージに含まれているggpairs()関数は散布図行列、ヒストグラム、相関係数を自動で出力してくれる便利なパッケージです。
連続量だけでなく離散量が混ざっていてもよしなに取り計らってくれるようです。
難しいことは考えなくても見たいグラフが勝手にできるので重宝します。
使用したデータは厚沢部町の財政に関する以下のようなデータです。
>head(data2)
住基人口 地方交付税総額 歳出総額 経常一般財源 経常収支比率 人件費比率
1 5137 2526769 4306357 2849158 65.6 21.7
2 5094 2535551 5656012 2843973 63.6 20.6
3 5019 2094671 3921021 2403675 71.1 22.3
4 4930 2023750 4330083 2434981 76.5 23.0
5 4887 2026470 4366408 2449895 77.2 23.5
6 4858 2028523 4653558 2407536 75.3 22.5
#「GGally」パッケージを読み込む
library(GGally)
#ggpairs関数で「data2」を指定します。
##「diag=list(continuous="barDiag"」はヒストグラムを描画するように指定しています。何もして指定しなくてもOKです。その場合は、平滑化線が引かれたようなグラフが単変量変数グラフとして描画されます。
p<-ggpairs(data2,diag=list(continuous="barDiag"))
#PDF形式で保存します。
ggsave("Pairs.pdf", p, family="Japan1GothicBBB",width=8,height=8)
ggpairs(data2)
単に上記だけでも下のようなグラフが描画されます。
データの形を見たいだけならこれで十分。
for文で大量に描画する
さらに変数が増えるとggpairs()関数でも歯が立たなくなります。
46変数をggpairs()関数に突っ込んだ結果がこちら。
壮観ではありますがさすがに読み取りにくいので、散布図の一枚一枚が大きくなるように描画します。
#「散布図.pdf」という名前のpdfデバイスを用意します。
##幅6.4インチ、高さ6.4インチのサイズを指定して、日本語が使えるように「family="Japan1"」のオプションを入れます。
pdf(file="散布図.pdf", width=6.4,height=6.4,family="Japan1")
#ここからfor文です。
##y軸の変数が一周するとx軸の変数が次の変数へ切り替わります。
###軸のラベルも指定しています。
for(i in 1:ncol(data)){
for(j in 2:ncol(data)){
p<-ggplot(data,aes(x=data[,i],y=data[,j],label=年度))
+geom_point()
+xlab(colnames(data[i]))
+ylab(colnames(data[j]))
print(p)
}
}
dev.off()
全部で1980ページもあるpdfファイルが生成されました。
重複もあるし、目を通すだけでも一苦労。
Rさんも15分くらいうなりながら計算していました。
#クリエイティブ・コモンズcc by
この 記事 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。