Rでベクタ画像を作る際のメモ

Rでベクタ画像を作成する際に色々調べたメモ。

ベクタ画像の作り方

postscriptでデバイスを開いて次のようにすると良い。

postscript("eps_sample1.eps",
           width=7, height=7, paper="special", onefile = F,
           horizontal = F)
plot(1:10, main="eps file")
dev.off()

widthとheightはインチ指定で描画する領域。paperはその外側の領域で"a4"とかサイズを指定するそうだけれど純粋に描いた領域の画像が欲しい場合は"special"を指定しておくと良いらしい。

eps1

onefileは1つのファイルに2つ以上の画像を埋め込むとかどうたらの設定らしいが, 指定しないで作ったら私の環境だとよく分からない余白が発生した。Rwikiによれば, horizontalを指定しておかないとLaTeXに取り込んだ際によくないことが起こるらしい。

フォントについて

フォントを変更したいときは,引数でfamily="Times"のように指定してやると良い。

eps3

postscriptでどんなフォントが使えるかが知りたければ, ‘postscriptFonts()‘の引数で見ることができる。Japan1というのがあるのでそれを選べば日本語が出力できる。(私のUbuntuの環境だとできるがMacだとなぜかできない。)

postscript("eps_sample4.eps",
           width=7, height=7, paper="special", onefile = F,
           horizontal = F,
           family="Japan1")
plot(1:10, main="日本語のフォント")
dev.off()

eps4

フォントの埋め込み

こうして作られたepsファイルはフォントが埋め込まれていないため, 当該のフォントが入っていない環境では表示されなくなってしまう。そこで出来上がった画像にフォントを埋め込む必要がある。といっても、関数一発でできるので難しいことはない。

embedFonts("eps_sample1.eps", format = "eps2write")

参考にしたサイト

Rのポストスクリプト画像(eps・psファイル)出力

R による EPS 画像の作成とその LATEX への取り込み