mac OS版 Rのplotで日本語表示をしてみた | 刻苦勉励 - share my ideas and experiences -

刻苦勉励 - share my ideas and experiences -

アメブロIDを所有している方のみコメント可能です。

mac R のplotで日本語の表示をする

Rという統計解析ソフトがあります。
ボクも好んでよく使っています。

しかし、macでRを使うときの問題点が、
plotで日本語が表示されないということ。
(デフォルトで出来る方もいるんですかね。。)

そこで色々調べながら試行錯誤…。
30分くらいかかっちゃいましたが、
なんとか表示させることができました。

同じような問題点を抱えている方で、
なにやら面倒だなという方もいると思うので、
この機会にまとめておきたいと思います。

なお、なぜそれで出来るようになるのかは正直よくわかりません!
一応、コマンド入力などは自己責任でお願いします。

執筆日:2013年6月13日
OS : mac OS X
R version 2.15.2 (2012-10-26)


【0】文字化けしてるか確認
Rで 
> plot(1,1,main="テスト")
などを打ち込んで、日本語が文字化けしているかを確認。

【1】必要なもの
適当なテキストエディタ(miなど。http://www.mimikaki.net)

【2】ターミナルを開いてコマンドを入力
<ターミナルの居場所>
Launchpad > その他 にボクの場合はありました。
今後も使うことがあると思うので、Dockに格納しておくのも手です。

<隠しファイルを表示する>
ターミナルに以下を入力する

隠しファイルを表示↓
defaults write com.apple.finder AppleShowAllFiles TRUE

Finderを一旦閉じる↓
killall Finder

(なお、非表示にしたいときは、
defaults write com.apple.finder AppleShowAllFiles FALSE 
と入力)


<.Rprofileを作成>
ターミナルに以下を入録する
touch ~/.Rprofile

【3】Finder > ホームディレクトリ(pcの名前のフォルダ)にある.Rprofileを編集する
この際に、miなどのテキストエディタで開いて、
以下のスクリプトをコピペして、保存する。

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() {
            winfontdevs=c("windows","win.metafile",
                          "png","bmp","jpeg","tiff")
            macfontdevs=c("quartz","quartz_off_screen")
            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"))

# Winでは Rdevga を触ると, fontfaceに影響するので, より正しくは上記の
# 方法が現在理想とされる設定かもしれません.

# このシステムの開発が終わる事は無いでしょう.
http://d.hatena.ne.jp/MikuHatsune/20120428/1335544822(より引用)

【4】Rを再起動して、再度plotをして、日本語が表示されるかを確認。


参考URL


かず