Mac の R の ggmcmc で「フォントタイプが不正です」エラー → file=NULL とフォント指定で解決

統計ソフトウェア Rのパッケージ ggmcmcは, rstan, rjags rbugs などの MCMCによる推定をするパッケージの収束の様子を trace plot などとして可視化するためのもの.

Mac macOS OS X の R で使ったところ, こうなった.

fit<-rstan(file="model.stan)
ggmcmc(ggs(fit))
> ...
grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y,  でエラー: 
   フォントタイプが不正です

ああ, ggmcmc は ggplot2 を使ってるから, Mac ではフォント設定に注意ね.

fit<-rstan(file="model.stan)
theme_set(theme_bw(base_family="HiraKakuProN-W3"))
quartz(type="pdf",file="plot.pdf")
ggmcmc(ggs(fit))
dev.off()
> ...
grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y,  でエラー: 
   フォントタイプが不正です

あれっ変わらないってどういうこと?

実は, ggmcmcは独自のグラフィックスドライバ(不正確な用語でしょう)を持っているので, 上のようにしても, themeやquartzの設定と無関係に, 独自のドライバで ggmcmc-output.pdf に書こうとしちゃうとのこと. その過程に対してフォント指定できてないからエラーになるのね. file=NULLで明示的に無効化しないといけない.

fit<-rstan(file="model.stan)
theme_set(theme_bw(base_family="HiraKakuProN-W3"))
quartz(type="pdf",file="plot.pdf")
ggmcmc(ggs(fit),file=NULL)  ##### 変更行
dev.off()

pdf 
  2