ggplotのplot エリアでのFONTを指定する問題

表記問題、かなり長い間、うまくいかずにもたもたしていましたが、なんとか目処がたちました。環境は、Macです。MacでRStudioを使って、ggplotなどで日本語を使う環境はできているのですが、ここがうまくいかないfunctionがありました。

きっかけは、FactoMineRがversion2.0になって、graph出力のdefaultが、ggplotになったこと(従来のものはgraph.type=”classic”を指定)、でやはりplotエリアでの日本語表示がうまくいかないことがわかったことでした。

もともとは、factoextraが、FactoMineR::CA,MCA やca::ca とった対応分析関係のresult を入力としてOKであるにもかかわらず、日本語のFONT指定がうまくいかないということです。これ、GitHub上作者とあれこれやっていました。2017年頃です。一時はいまくいくようになったものの、factoextraやそれがベースにしているggpubrがupdateしたとたんにうまくいかなくなって、その旨を伝えてはいたものの、それっきりになっていたのです。

今回のFactoMineRの2.0発表でそれなりに期待したいのですが、やはりうまくいかず。そこで、改めて検索をかけたところ、次のものを発見することになりました。

“showtext: Using Fonts More Easily in R Graphs” https://cran.rstudio.com/web/packages/showtext/vignettes/introduction.html

ただ、これによりますと、RStudioでのgraphicデバイスのあつかいはcomplricatedなのでうまくいかない、とあったりするのですが、とにかくやってみました。

library(showtext)
showtext_auto(TRUE)

```{r fig.showtext=TRUE}
# ここに、graph表示functionを並べます
```

のようにすればOKとなりました。

サンプルは、ここにあります。http://rpubs.com/kfj419/559740

もしくは、以下ものをご覧ください。

実際は、Rmarkdownで 最初に、
knitr::opts_chunk$set(echo = TRUE,fig.showtext=TRUE)
と、chunkのdefaultをfig.showtext=TRUE に設定してしまって、”classic”を使うときは、そのchunkで、FALSEにしています。
また、冒頭に、showtext_auto(TRUE)を設定しておけば、以後全体に適用されるようですが、途中で、classicを使う時には、showtext_auto(FALSE)と設定しています。そのたと、ggplotを指定するときには、chunkで、showtext_auto(TRUE) を指定します。

これで、factoextra(ということはggpubrも!)やFactoMineRの美しいgraph出力を活用できます。それぞれのgraph出力は、ggplot オブジェクトですので、名前をつけて保存して、patchworkなどをつかってレイアウトすることも可能です。

かなり楽しくなってます。

カテゴリー: R, 対応分析 パーマリンク