作図 作図入門

【R】グラフの保存法 | ggplotで作成した図の保存

2021年11月21日

eyecatch image for save ggplot figures

この記事ではRでのグラフの保存方法を紹介します。ggplot関数を使って作成したグラフの保存法や ggplot以外で作成したグラフの保存法など幅広く紹介したいと思います。

概要

  • ggplotで作成したグラフの保存はggsave()を使う
  • R Studioを使っている場合 Plots Pane の Export ボタンを使うことも出来る
  • ggplotではなくplot()関数で出力したものを保存する場合は png() と dev.off()を組み合わせて保存

ggsave()の使い方と設定項目

ggplotで作成したグラフを保存する時は ggplot2パッケージの ggsave()関数を使います。ggsave()の基本的な使い方は以下の通りです。

library(ggplot2) # packageを呼び出す。インストールしていない場合は install.packages("ggplot2")をあらかじめ実行しておく。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +  # 保存したいグラフを普通に作成する
  geom_point()
ggsave("example.png") # ggsaveで保存。デフォルトで最新のグラフを保存してくれるので、基本は保存するファイルの名前を付けるだけでよい

ggplotで普通にグラフを描いた後、ggsave()関数を使えば保存可能。

設定できる項目は以下の通りです。

設定項目

  • filename:作成するファイルの名前
  • plot:保存するグラフ
  • device:ファイル形式("eps", "ps", "tex", "pdf", "jpeg", "tiff", "png", "bmp", "svg", "wmf"など)
  • path:ファイルの保存先ディレクトリ
  • scale:保存する図の大きさの倍率 (2に設定すると2倍になる)
  • width:保存する図の横幅
  • height:保存する図の縦幅
  • units:width や heightパラメータで設定した項目の単位("in", "cm", "mm", "px"などに設定可能)
  • dpi:保存する画像の解像度
  • limitsize:50x50 インチより大きな画像を保存するか(FALSEにすると大き過ぎる画像も保存可能)
  • bg:背景色

具体例

ここからは図を保存するときの具体例を紹介します。

解像度を上げる

解像度を上げるときはdpi 引数を変更します。デフォルトの解像度は 300dpi になっており、これでもパワーポイントに貼るくらいであれば問題ないのですが、拡大して表示する場合などは解像度を高めてみると良いでしょう。

library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + 
  geom_point()
ggsave("example_retina.png", dpi = 320)

上のコードは dpi を 320 に設定して少しだけ解像度を上げています。

解像度を上げる時は dpi を高くする

縦横比を変更する

縦の長さや横の長さを変更する時は、width やheight を変更します。縦横比を変更したい場合はこのパラメータを設定してみると良いでしょう。

library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + 
  geom_point()
ggsave("example_width_height.png", width = 16, height = 9)

上のコードでは図の縦横比を16:9に設定しています。

縦横比を変更する時は width 引数と height 引数のバランスを変える

ファイル形式を変更する

ファイル形式を変更する時はファイル名の末尾を正しく指定すれば大丈夫です。念のため device 引数を設定しておくと丁寧です。

library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + 
  geom_point()
ggsave("example_width_height.pdf", device = "pdf")

上のコードではファイルの形式をPDF形式として保存しています。

ファイル形式の変更はファイル名の末尾を変えるだけで基本的には問題なし

Export ボタンを使った保存

基本的には保存したグラフをどのように作成したか後から確認できるようにしておくために先ほど説明した ggsave()がおすすめなのですが、Export ボタンを使ってグラフを保存することもできます。Export ボタンは下の画像のように Plots Pane の中にあります。

Location of the Export button in RStudio

ggplot系以外の方法で出力した図の保存

ggplotで作成したグラフは ggsave()が最もシンプルな保存方法ですが、ggplot系列ではない方法でグラフを作った場合は R の グラフデバイスから保存する必要があります。この場合、①デバイスを開く→②グラフを描く→③デバイスを閉じるの順番でグラフを保存することができます。

PNGファイルとして保存する場合は ①png("ファイル名")でデバイスを開く→②グラフを作成→③dev.off()でデバイスを閉めるの順番で保存することができます。

PDFファイルとして保存する場合は①pdf("ファイル名")でデバイスを開く→② グラフを作成→③dev.off()でデバイスを閉めるの順番で保存することができます。

# png形式で保存する場合
png("not_ggplot.png") # png デバイスを開く
plot(x = iris$Sepal.Length, y = iris$Sepal.Width)  # 作図
dev.off() # デバイスを閉める

# pdf 形式で保存する場合
pdf("not_ggplot.pdf")
plot(x = iris$Sepal.Length, y = iris$Sepal.Width)
dev.off()

上のコードでは png形式(not_ggplot.pngという名前で保存)とPDF形式(not_ggplot.pdfという名前で保存)でグラフを保存することができます。

-作図, 作図入門