Mac下使用sjPlot::sjp.frq()製圖時中文字變方塊的最終解決方案
Published by 劉正山,
我用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的官網,也發現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)。這才是真中獎了。