Slide 1

Slide 1 text

グラフをちょっとキレイに出力する - CairoとAGG - 2022/06/04 Tokyo.R #99 @bob3bob3

Slide 2

Slide 2 text

Graphics Deviceを変えてみる ● 画像を描く仕組みのこと。RStudioではOSのデフォルトの他にCairoと AGG(Anti-Grain Geometry)が選べる。 ● メニューのTools → GrobalOptions → General → Graphics で設定できる。

Slide 3

Slide 3 text

Cairo、AGGではアンチエイリアスの効いたなめらかな描画ができる。 Graphics Device による描画の違い デフォルト設定 Cairo AGG

Slide 4

Slide 4 text

Cairoはそのままだと日本語が豆腐になる。 Graphics Device による描画の違い デフォルト設定 Cairo AGG

Slide 5

Slide 5 text

フォントを指定すればCairoでも日本語が表示される。 Graphics Device による描画の違い(フォント指定) デフォルト設定 Cairo AGG

Slide 6

Slide 6 text

ggplot2でのフォントの指定 ● ggplot2でフォントを指定するには以下を加えればOK。 ○ theme(text = element_text("フォントファミリー名")) ● 使えるフォントファミリーは以下で確認できる。 ○ systemfonts::system_fonts() |> select(family) |> distinct() |> View() ○ よく使われるフォントファミリーは以下。 ■ Windows: Meiryo, Yu Gothic, UD Digi Kyokasho NK-B ■ Mac: Hiragino Sans, Noto Sans CJK JP

Slide 7

Slide 7 text

● アンチエイリアスが効く分、PNG形式ではファイルサイズが大きくなる。 ファイルサイズは大きくなる 8kb 78kb 80kb

Slide 8

Slide 8 text

RMarkdownでAGGを使いたい ● setupチャンクに以下を書いておけばファイル全体に適用され る。 knitr::opts_chunk$set(dev = "ragg_png") ● YAMLヘッダーに以下のように書くのでもOK
 ● チャンクごとに設定したい場合はチャンクオプションを以下のようにす る。
 ```{r hogehoge, dev = "ragg_png"}

Slide 9

Slide 9 text

まとめ ● CairoとAGG、どちらもアンチエイリアスが効いた滑らかな描画が特徴。 ● 文字(フォント)の表現が結構違う。 ● アンチエイリアスが効く分、PNG形式だとファイルサイズが大きくなる。 ● Cairoは日本語の表示にフォントの指定が必要。 ● AGGはCairoより高速。2006年で開発が止まっている。 ● Enjoy!