Rで解析:保存前にサイズとDPIをそのままプレビューできる「ggview」パッケージの紹介
ggplot2パッケージのグラフ保存は、解像度の調整や出力サイズの設定など意外と面倒です。そんな面倒な作業を簡単にしてくれるのが、ggviewパッケージです。canvas()コマンドを使うと、保存時に指定するサイズやDPIのまま、プレビューできるので便利です。
具体的には、「canvas」コマンドでサイズ・DPI・背景色などをプレビューで確認し、「save_ggplot」コマンドでファイルに保存する、という手順です。
パッケージバージョンは0.2.2。Windows 11のR version 4.4.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
# パッケージのインストール
install.packages("ggview")
# パッケージの読み込み
library("ggview")
# その他必要なパッケージ
library("tidyverse")スポンサーリンク
コマンド例
詳細はコメント、パッケージのヘルプを確認してください。
保存時のサイズ・DPIのままプロットをプレビュー:canvasコマンド
| オプション | 意味 | 初期値 |
|---|---|---|
| width | プロットの幅をunits単位で指定;未指定の場合は現在のグラフィックデバイスのサイズを使用 | |
| height | プロットの高さをunits単位で指定;未指定の場合は現在のグラフィックデバイスのサイズを使用 | |
| units | width・heightの単位を指定;”in”、”cm”、”mm”、”px”のいずれか | “in” |
| dpi | プロットの解像度を指定;数値のほか”retina”(320)、”print”(300)、”screen”(72)も指定可能;ピクセル単位への変換時にのみ適用される | 300 |
| scale | 拡大縮小倍率を指定 | 1 |
| bg | 背景色を指定;NULLの場合はテーマのplot.backgroundの塗りつぶし色を使用 | “white” |
# プロットを作成
p <- ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
ggtitle("Weight vs MPG")
# 4×3インチ、300dpiでプレビュー
p + canvas(width = 4, height = 3, units = "in", dpi = 300)なお、RStudioでcanvas()を実行してプレビューした画像をそのまま保存したい場合は、下記の手順で保存できます。
- プロットの出力コマンドとcanvas()を実行する。
- プロットがRStudioの「Viewer」パネルに表示される。
- 「Viewer」パネルのメニューから「Show in new window」をクリックする。
- ブラウザが起動し、グラフが表示される。
- グラフ上で右クリックし、「名前を付けて画像を保存」を選択して保存する。
キャンバス設定を引き継いでファイルに保存:save_ggplotコマンド
| オプション | 意味 | 初期値 |
|---|---|---|
| plot | 保存するggplotオブジェクトを指定 | |
| file | 保存先のファイルパスを指定 | |
| device | 使用するデバイスを指定;デバイス関数、または”eps”、”ps”、”tex”、”pdf”、”jpeg”、”tiff”、”png”、”bmp”、”svg”、”wmf”(Windowsのみ)のいずれかの文字列;NULLの場合はファイル名の拡張子から自動判定される | NULL |
| scale | 拡大縮小倍率を指定 | NULL |
| width | プロットの幅をunits単位で指定;未指定の場合は現在のグラフィックデバイスのサイズを使用 | NULL |
| height | プロットの高さをunits単位で指定;未指定の場合は現在のグラフィックデバイスのサイズを使用 | NULL |
| units | width・heightの単位を指定;”in”、”cm”、”mm”、”px”のいずれか | NULL |
| dpi | プロットの解像度を指定;数値のほか”retina”(320)、”print”(300)、”screen”(72)も指定可能 | NULL |
| limitsize | TRUEの場合、ピクセル単位の指定ミスを防ぐため、50×50インチを超える画像の保存を行わない | TRUE |
| bg | 背景色を指定;NULLの場合はテーマのplot.backgroundの塗りつぶし色を使用 | NULL |
| create.dir | 保存先ディレクトリが存在しない場合、TRUEなら自動作成し、FALSEならエラーとする(対話セッションでは作成確認が表示される) | FALSE |
# キャンバス設定付きのプロットを作成
p <- ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
ggtitle("Weight vs MPG") +
canvas(5, 4)
# 保存先の一時ファイルを作成
out_png <- tempfile(fileext = ".png")
# 幅・高さを明示しなくてもキャンバス値が適用される
save_ggplot(p, out_png)
# dpiを上書きしたい場合
save_ggplot(p, out_png, dpi = 600)
この記事が誰かの役に立ちますように。
スポンサーリンク