Rで解析:保存前にサイズとDPIをそのままプレビューできる「ggview」パッケージの紹介
ggplot2パッケージのグラフ保存は、解像度の調整や出力サイズの設定など意外と面倒です。そんな面倒な作業を簡単にしてくれるのが、ggviewパッケージです。canvas()コマンドを使うと、保存時に指定するサイズやDPIのまま、プレビューできるので便利です。
具体的には、「canvas」コマンドでサイズ・DPI・背景色などをプレビューで確認し、「save_ggplot」コマンドでファイルに保存する、という手順です。
パッケージバージョンは0.2.2。Windows 11のR version 4.4.2で確認しています。
<おすすめのRに関する書籍です>
Rによるやさしいテキストマイニング: 機械学習編
テキストマイニングに機械学習を組み合わせる方法を扱う一冊。分類や特徴抽出を実践的に学べる。
パッケージのインストール
下記コマンドを実行してください。
# パッケージのインストール
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」をクリックする。
- ブラウザが起動し、グラフが表示される。
- グラフ上で右クリックし、「名前を付けて画像を保存」を選択して保存する。
<おすすめのRに関する書籍です>
現場ですぐに使える! 最新R言語プログラミング逆引き大全323の極意
323項目の逆引きテクニック集。tidyverseやtidymodelsといったモダンな書き方もカバーしている。
キャンバス設定を引き継いでファイルに保存: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)
<おすすめのRに関する書籍です>
基礎からわかる時系列分析―Rで実践するカルマンフィルタ・MCMC・粒子フィルタ― Data Science Library
カルマンフィルタ・MCMC・粒子フィルタといった手法をRで実践しながら学ぶ時系列分析の一冊。
この記事が誰かの役に立ちますように。
スポンサーリンク