R で PDF 出力した図を Inkscape で開くとプロット点が q になる

R + Inkscape で PDF を扱うときの有名?な問題に,「プロット点の丸が q になる」というのがある.プロットに使われる ZapfDingbats フォントがロードされないというのが直接の原因なのだが,いろいろ試したところどうも問題は少し複雑なようだ.

書き出し (R) \読み込み (Inkscape) Win Mac
Win PDF CUI q q
GUI q q
eps CUI
GUI ○ * ○ *
Mac PDF CUI q q
GUI
eps CUI

CUI は pdf / postscript 関数で直接書き出し,GUI は R の保存メニューから,Mac R では GUI からの eps 出力ができないので省略.

すべての条件で両 OS の Inkscape は同じ結果を返したので,この問題は R 側の条件で発生することが分かる.eps で出力すると,テキストがパスに置き換えられるので,フォントがなくても問題なく読み込める.Mac R GUI から PDF 出力するときもテキスト to パス変換が行われるようだ.Windows R GUI から eps 出力すると,マーカーは問題ないのだが,図全体が上下に反転するというこれまたよくあるバグが発生する (*).

結局,postscript 関数での出力が一番安心して使えるということが分かった.というか,デフォルトの丸 (pch=1) 以外はどんな環境でもパスに変換されるので,丸も変換してよ.

2013-04-09 追記: 隣の助教の鎌谷先生も同じ問題で悩んでおられたが,最近解決方法を発見し,教えてくれた.R から出力される PDF のバージョンは 1.4 なのだが,これを 1.3 に直すとちゃんと読み込めるようになるそうだ.MacOSX の Preview で PDF を複製保存するとバージョン 1.3 で保存されるので,これを使って文字化けを回避することができる.グレイト!

2016-07-19 追記: こちらのブログ記事に正当な解決策が載りました.3年前の問題に対して5年も前に解決法があったのに気づかなかったとは.しかも普通に R のドキュメントに書いてあったし…

コメントを残す

メールアドレスが公開されることはありません。