Mac下使用sjPlot::sjp.frq()製圖時中文字變方塊的最終解決方案

結論:Mac使用者需設定字體才能正常顯示標籤中的中文字

library(sjPlot)
set_theme(theme.font="PingFang TC")

[這是劉老師於2019.4.6做的年的筆記,重新叫上來,與班上使用mac遇到同樣問題的同學分享]

我用mac進行教學,2018年完成 教科書
的時候,都還未能找到遇到在Mac下使用sjPlot::fjp.frq()製圖遇到中文字體出不來(只出現方塊)時的解決方法。這個問題在Windows作業系統下不會出現,因此在寫教科書的時候只好用英文標籤來製圖。

解決方案是在語法檔內執行下面的第二行:
library(sjPlot)

set_theme(theme.font="PMingLiU")

字體要從Mac的fontbook來找

sjp.frq(data1270$B41r) #資料檔是data1270;變數是B41r

至於找到答案的過程,是這樣的:

先到RStudio讀sjPlot::sjp.frq()的說明書。可以看到,這個指令所做的圖是個ggplot2物件。

爬找到了 這一篇
讀後,知道了透過theme的調整應該可以調整文字,其中的關鍵字是family。

這個過程中,我走過了 **[ggplot2的官網](
https://ggplot2.tidyverse.org/reference/)**,也發現Ggplot2
elegrant graphics for data analysis這本書2016出了第二版了,而且 中山大學有電子書
可以借閱。看來該找時間好好啃練一下ggplot2的基本功了。但這畢竟是另人分心的資訊。知道就好。

接下來要看sjPlot套件作者到底如何處理theme的問題(因為我目前真的沒時間回頭去重學ggplot2,而sjPlot就是讓沒時間學ggplot2人的捷徑啊)。所以我查找到了作者的網頁 Customize Plot Appearance。作者設定theme的方式是用sjPlot::set_theme()。我感覺中獎了。但這一頁並沒有提到字體、family的設定問題。小失望了一下。

我再去看看set_theme()的說明書,找到了使用"theme.font"這個參數,就可以調整字體了(base font family for the plot)。這才是真中獎了。

至於怎麼找到mac中的字體,爬找了一下可以看到 像這一篇
這一篇.
我選的是PMingLiU這個字體。