【R】ggplot2で複数のグラフを一つ図として表示&保存する方法

      2016/04/10

Rでグラフを作成するにはggplot2というパッケージがとても綺麗で使いやすいです。
まだまだ勉強中なのですが、さまざまな形式で作った散布図を一つのグラフとして保存する方法を紹介したいと思います。

まずは、グラフを4つ用意します。

シンプルな使い方

黒のみで表示します。

#最もシンプルな使い方
library(ggplot2)
p1<-ggplot(data=iris, aes(x=Sepal.Length, y=Sepal.Width))
p1<-p1+geom_point()
plot(p1)

Rplot

カテゴリで色分け。

カテゴリごとに色分けします。

#Speciesで色分け
p2<-ggplot(data=iris, aes(x=Sepal.Length, y=Sepal.Width,colour=Species))
p2<-p2+geom_point()
plot(p2)

色を薄くする。

色を薄くすることができます。

#色を薄くする
p3<-ggplot(data=iris, aes(x=Sepal.Length, y=Sepal.Width,colour=Species))
p3<-p3+geom_point(alpha = 1/3)
plot(p3)

Rplot02

タイトルをつける。

グラフにタイトルをつけます。

#タイトルをつける
p4<-ggplot(data=iris, aes(x=Sepal.Length, y=Sepal.Width,colour=Species))
p4<-p4+geom_point()
p4<-p4+labs(title="iris")
plot(p4)

Rplot03

一つの図として表示

gridパッケージを使用します。

#4つを一つの図にする
library(grid)
grid.newpage()
pushViewport(viewport(layout=grid.layout(2, 2)))
print(p1, vp = viewport(layout.pos.row=1,layout.pos.col=1))
print(p2, vp = viewport(layout.pos.row=1,layout.pos.col=2))
print(p3, vp = viewport(layout.pos.row=2,layout.pos.col=1))
print(p4, vp = viewport(layout.pos.row=2,layout.pos.col=2))

Rplot04

一つの図として保存

png("データ名") ~ dev.off()で先ほどのコードを囲ってあげれば保存できます。

#4つの図を一つのファイルとして保存する
png("iris.png")
grid.newpage()
pushViewport(viewport(layout=grid.layout(2, 2)))
print(p1, vp = viewport(layout.pos.row=1,layout.pos.col=1))
print(p2, vp = viewport(layout.pos.row=1,layout.pos.col=2))
print(p3, vp = viewport(layout.pos.row=2,layout.pos.col=1))
print(p4, vp = viewport(layout.pos.row=2,layout.pos.col=2))
dev.off()

形式は自由に変更可能です。

参考

異なるデータセットからの複数グラフをggplot2で表示する方法 | リケジョ28歳が育休中に学んだ【「R」によるデータ分析】の記録

Getting started – positioning and getting multiple plots on one page, output as a pdf | ayeimanolr

おすすめ記事

1
2016年買って良かったモノを紹介します!

2016年もあとわずか。毎年恒例の買って良かったモノシリーズ、2016年版を紹介 ...

2
英語ができなかった僕がバイリンガルになるまでの5つの英語上達プロセス

英語ができなかった僕がバイリンガルと呼ばれるようになるまでに経験した過程を5つに分けて紹介します。

 - 統計学