RStudio for Mac OS X で日本語のプロットが上手くいかない場合の対処法
皆さん,RStudio使ってますか?
ようやく日本語を入力できるようになりましたよ!
日本語のディレクトリ以下にあってもファイルを開けるようになりましたよ!
まだBuggyな部分はあるけどデイリービルド
http://www.rstudio.org/download/daily/desktop/
で日々修正されてますよ!
使わない手はありませんよ!
というわけでそんな中,Mac OS Xの環境で日本語をプロットしようとすると↓な感じで文字化けする問題はなかなか解決されていませんでした.
元々,R for Mac OS Xではデフォルトで日本語のプロットが出来ないという難がありましたが,
ココとかココの方々の偉大なTipsのお陰で特に問題なくプロットできていました.
しかし,その問題がRStudioで再発してしまっていて,にっちもさっちも行かない状態になっていたので,つたない英語で質問を投げてみたところ,
ようやく解決法がわかりました,Rstudioのサポートの皆様に感謝感謝(こちらのtypoで迷惑かけて申し訳ない).
結局原因は,macfontdevsの設定にあったようで
macfontdevs=c("quartz","quartz_off_screen", "RStudio")
とすることでうまくいきました.
北大の久保先生のページに掲載されていた.Rprofileを元にRStudio向け修正版を書くと
setHook(packageEvent("grDevices", "onLoad"),
function(...){
if(.Platform$OS.type == "windows")
grDevices::windowsFonts(sans ="MS Gothic",
serif="MS Mincho",
mono ="FixedFont")
if(capabilities("aqua"))
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")),
serif=grDevices::quartzFont(
c("Hiragino Mincho Pro W3",
"Hiragino Mincho Pro W6",
"Hiragino Mincho Pro W3",
"Hiragino Mincho Pro W6")))
if(capabilities("X11"))
grDevices::X11.options(
fonts=c("-kochi-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*",
"-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*"))
grDevices::pdf.options(family="Japan1GothicBBB")
grDevices::ps.options(family="Japan1GothicBBB")
}
)
attach(NULL, name = "JapanEnv")
assign("familyset_hook",
function() {
#2012/05/16修正:
#通りすがりの方のコメントでRStudioだったのがRStudioGDに変わってることが分かりました
#情報ありがとうございます!
winfontdevs=c("windows","win.metafile",
"png","bmp","jpeg","tiff","RStudioGD")
macfontdevs=c("quartz","quartz_off_screen","RStudioGD")
devname=strsplit(names(dev.cur()),":")[[1L]][1]
if ((.Platform$OS.type == "windows") &&
(devname %in% winfontdevs))
par(family="sans")
if (capabilities("aqua") &&
devname %in% macfontdevs)
par(family="sans")
},
pos="JapanEnv")
setHook("plot.new", get("familyset_hook", pos="JapanEnv"))
setHook("persp", get("familyset_hook", pos="JapanEnv"))
で↓な感じで万事うまく行きました(赤色のが新規に書き加えたところ).
これで日本語をプロットするときもOKです.
やったね!