RでアンチエイリアスしたグラフがプロットできるCairoパッケージ

「おいこのタイトル何度目だよ。」「三度目だよ。」
はい。
先日cairoDeviceというパッケージがあることを知った(RでアンチエイリアスしたグラフのプロットができるcairoDeviceパッケージ - もうカツ丼でいいよな)んだった。でもCairoライブラリを使って綺麗にレンダリングしてくれるグラフィックデバイスとしてはCairoパッケージのCairoというそのまんまな名前のものがより一般的で多機能っぽい。
インストールは

install.packages("Cairo")

で、前回と同じくGTK+も別途必要なのでhttp://www.gtk.org/download-windows.htmlからダウンロードして解凍、環境変数PATHにbinフォルダへのパスを追加しておく。もしかしたら再起動が必要かもしれない。
使うには

library("Cairo")

これでCairoライブラリを使った各種グラフィックデバイスが使用可能になる。詳しくは?Cairoとかしてhelp参照のこと。
Cairoにはウィンドウ形式のグラフィックデバイスもついている。ちょっと比較してみよう。

## Windows標準
windows(width=4, height=4)
curve(sin, -3, 3, col=4,
      main="Main タイトル")
points(-3:3, seq(-0.5, 0.5, l=7))
polygon(c(-1,1,1,-1), c(-0.5,-0.7,0.5,0.7),
        col=rgb(0.2,0.4,0.2, alpha=0.7))


## Cairoによるグラフィックデバイス
library(Cairo)
CairoWin(width=4, height=4)
curve(sin, -3, 3, col=4,
      main="Main タイトル")
points(-3:3, seq(-0.5, 0.5, l=7))
polygon(c(-1,1,1,-1), c(-0.5,-0.7,0.5,0.7),
        col=rgb(0.2,0.4,0.2, alpha=0.7))

キャプチャした。

曲線とか斜線、半透明部分の処理などを見るとかなり綺麗になっているのが分かる。もうQuartz見せつけられても悔しくない*1
ほかにもマージンが違っていたりフォントが変わっていたりする。どうやらデフォルトはHelveticaらしい。その影響か日本語が文字化けしている。
フォントはCairoFonts()で指定できるので、これで日本語表示可能なフォントを指定してやれば文字化けは解消するはずなんだけど…

> CairoFonts()
Warning message:
In CairoFonts() :
  the R Cairo package was not installed with fontconfig. 
  Please consider installing the cairo graphics engine 
  (www.cairographics.org) with freetype and fontconfig support

とこんなエラーが出る(長いので適当に改行した)。freetypeとfontconfigを入れろという指示だがGTK+はall-in-oneで入れたので入っている。Cygwinのを入れてみたり、Octaveの中のdllをコピーしてみたりもしたけどやっぱダメ。ググっても同じように困っている人がメーリングリストに投稿したログしか出てこない。

ううむ。
一応メーリスの人に倣ってsessionInfoを。

> sessionInfo()
R version 2.10.0 (2009-10-26) 
i386-pc-mingw32 

locale:
[1] LC_COLLATE=Japanese_Japan.932  LC_CTYPE=Japanese_Japan.932   
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C                  
[5] LC_TIME=Japanese_Japan.932    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] Cairo_1.4-5

loaded via a namespace (and not attached):
[1] tools_2.10.0

ほかの人は普通にできるから報告がないのか、それともCairoパッケージがマイナーなのか*2
Windowsで日本語使いつつ半透明使いつつ綺麗な出力が欲しかったらやはりpdf()使うしかないんだろうか。

*1:べつにMacなんか羨ましくないんだからねっ

*2:ライブラリの方ではなくて。ほかのプラットフォームではちらほら見るけどWinではあまり使っている例を見ない気がする。