Hatena::ブログ(Diary)

つぶやき〜 RSSフィード Twitter

2008-09-15 ひさしぶりにRをいじる:MacのESSでもquartz描画+日本語

MacのESSでもquartz描画+日本語したいよね

してみた。

.Rprofileを以下のようにしたところ、とりあえず動く。

Carbon Emacs 2008年夏版と R 2.7.1 で確認しています。

if (.Platform$pkgType == "mac.binary"){
	options(device="quartz")
}

setHook(packageEvent("grDevices", "onLoad"),
        function(...){
            grDevices::quartzFonts(serif=grDevices::quartzFont(
                c("Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6",
                  "Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6")))
            grDevices::quartzFonts(sans=grDevices::quartzFont(
                c("Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6",
                  "Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6")))
            # grDevices::quartz.options(family="sans")
        }
)
attach(NULL, name = "MacJapanEnv")
assign("familyset_hook",
       function() { if(names(dev.cur())=="quartz") par(family="sans")},
       pos="MacJapanEnv")
setHook("plot.new", get("familyset_hook", pos="MacJapanEnv"))

options(X11fonts = c("-alias-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*",
                          "-adobe-symbol-*-*-*-*-%d-*-*-*-*-*-*-*"))

setHook(packageEvent("grDevices", "onLoad"),
        function(...) grDevices::pdf.options(family="Japan1GothicBBB")
)

動作確認は

plot(1:10, main="ほげ")
pdf()
plot(1:10, main="ふが")
dev.off()

ぶっちゃけ、RjpWiki や id:syou6162 にあるものへ options(device="quartz") を足して、pdf.optionsを書いてるだけ。

Terminal から ESS ではうまくいってる。

Terminal から直接 R だと描画やpdf保存はうまくいくけど、Rで打ちこむ時に文字が化ける。Terminalなどではutf-8で日本語打てるので、R絡みかな?

このdevice="quartz"をやるのに海外だと CarbonEL というLibraryを使うひともいるようだ。特にメリットに気付けていないのでスルーした。

自分の環境ではなぜか

ps.options(family="Japan1GothicBBB")

だと postscript への保存時に日本語変換がうまくいかないというエラーが。

かなしい。

syou6162syou6162 2008/09/16 01:15 なるほどoptions(device=”quartz”)という手が…!

しかし、terminalではなく、carbon emacsでやってみるとエラーになってしまいました><

syou6162syou6162 2008/09/16 13:13 原因が分かりました。X11でplotさせていた時にはRのversion2.6.2でないと日本語の文字化けが回避できなかったのでRのversion2.6.2を入れていました。

が、上の.Rprofileを書いた上で現在の最新のバージョン(2.7.2)を入れたら、日本語もしっかりいけました。これできれいなグラフ生活ができます、ありがとうございます!!

N900N900 2010/01/16 08:40 こちらに書いて頂いている情報で、とても助かっております。
ただ、library(lattice)でのhistogram()等ではグラフ文字化けが解消せず、日本語が四角で表示されてしまいます(R 2.9.2)。
なかなか厳しいです。。

トラックバック - http://d.hatena.ne.jp/ma_ko/20080915/p1