--- disqus: ahb0222 GA : G-CQ4L16KHK4 --- # 一招完美解決R語言畫圖與ggplot2中英混合字體格式 > [color=#40f1ef][name=LHB阿好伯, 2021/07/20][:earth_africa:](https://www.facebook.com/LHB0222/) ###### tags: `R` `ggplot2` [TOC] ![](https://i.imgur.com/T5Eb7CL.jpg) 在之前[ggplot2推薦圖形配置](https://hackmd.io/@LHB-0222/set_ggplot2)中有分享到使用extrafont套件 他可以將我們電腦所安裝的字體使用在ggplot2上面 若是在台灣一些正式的文件像論文大家應該都是使用標楷體與Times New Roman 但若是使用ggplot2是可以依據不同位置的文字給予字體設定 但其中不管如何都可能會遇到一段文字裡面混合了中英文字 這時除了使用其他軟體後製不然是無法分別設定的 後來搜尋了一下相關資料發現一個堪稱完美的解決方法 就是將標楷體與Times New Roman進行合併成一個新字體使用 這時就需要使用到google開源的[FontForge](https://fontforge.org/en-US/) [![](https://i.imgur.com/nTR9KPz.png) 檔案下載](https://fontforge.org/en-US/downloads/) 這套軟體可以自行設計字體 利用它的功能可以將所需的字體合併 網路上有很多篇教學幾乎都是搬運文 測試超多次都沒辦法得到一樣的結果 後續自行摸索出另一套方式 大部分電腦的字體檔都放在 ==C:\Windows\Fonts== 可以將需要的字體檔我們先複製出來放在一個資料夾中 使用FontForge開啟兩個檔案 這邊我使用兩個開源的字體(思源宋體與源柔字體)做演示 :::danger 這過程中會有兩個大坑須注意 1. 字體大小 2. R匯入字體 ::: # 合併字體 首先第一步一定要先確認字體大小是否相同 雖然在軟體上看的字體是一樣的但實際上大小可能不一樣 ![](https://i.imgur.com/0NsIh0V.png) 一定要將大小調整到相同後續才不會出現問題 之後就是複製貼上XD 將所需的字體做合併 貼上時會出現一些提示框 這時候按住Enter就好不用一個一個點 ![](https://i.imgur.com/FOYu2Pv.gif) 後續可以修改一些字體資訊以利辨識 ![](https://i.imgur.com/Yy4uQom.png) 最後一步就是將字體匯出而不是選擇存檔 格式就選擇TrueType即可 ![](https://i.imgur.com/gAueGSb.png) 合併成功 ![](https://i.imgur.com/a9txj7H.png) # ggplot2中使用新字體 第二個大坑就是字體安裝 正常時候我們只需要點選兩下字體就可以安裝使用 ![](https://i.imgur.com/JXzG6Hj.png) ![](https://i.imgur.com/YJdRUHd.png) ![](https://i.imgur.com/sSV8zhW.png) 你會發現在R使用extrafont::font_import()匯入字體後並沒看到安裝的字體 ![](https://i.imgur.com/9gBNzcj.png) ![](https://i.imgur.com/ZlVRfKR.png) 主要原因在於字體雖然可以在 ==C:\Windows\Fonts== 看到 但實際上他的檔案位置並不在這........ ![](https://i.imgur.com/eODXCRi.png) 這時就需要指定路徑給font_import() 匯入指定路徑下的字體檔 `font_import("C:\\Users\\...\\AppData\\Local\\Microsoft\\Windows\\Fonts\\")` ![](https://i.imgur.com/9NogYmc.png) 最後用`fonts()` 查看以匯入的字體 ![](https://i.imgur.com/ju0Mxu5.png) 簡單測試 ``` library(ggplot2) library(extrafont) #font_import() loadfonts(device = "win") ggplot(iris, aes(x = Sepal.Length, y = Petal.Length))+ geom_point() + ggtitle("萼片長度與花瓣長度關係") ``` ![](https://i.imgur.com/QJE0vZl.png) ```r=+ ggplot(iris, aes(x = Sepal.Length, y = Petal.Length))+ geom_point() + ggtitle("萼片長度與花瓣長度關係") + theme(text=element_text(family = "AHB2")) ``` ![](https://i.imgur.com/3Bq6f5f.png) 若喜歡這字體的話[ 也可以下載去測試:arrow_double_down:](http://b00.tw/MB_KI) # 開源字體 ## [思源黑體](https://github.com/adobe-fonts/source-han-sans/blob/master/README-TW.md) >開源的 OFL 1.1 ![](https://i.imgur.com/uobmBSh.png) ## [霞鹜文楷](https://github.com/lxgw/LxgwWenKai/) >開源的 OFL 1.1 ![](https://i.imgur.com/daZCU8s.png) ## [jf open 粉圓](https://github.com/justfont/open-huninn-font) >開源的 OFL 1.1 ![](https://i.imgur.com/BnTZo5h.png) ## [源柔字體](http://jikasei.me/font/genjyuu/) >開源的 OFL 1.1 ![](https://i.imgur.com/91e2Go6.png) :::success 開源的 OFL 1.1 1. 可自由商用 不需付費、知會或標明作者,即可自由使用此字型,亦可做商業應用。 2. 可自由傳布 可自由分享檔案、將檔案安裝於任何軟硬體中。 3. 可自由改作為其他字型 將字型檔案修改重製為其他字型檔案,改作後的字型檔案須同樣依 Open Font License 釋出。 ::: :::info 最後提醒若非開源字體請不要放到網路上分享XD ::: 🌟全文可以至下方連結觀看或是補充 [font](https://hackmd.io/@LHB-0222/font) 參考資料 [R畫圖中英文字型完美解決方案](https://www.itread01.com/content/1549242028.html) 全文分享至 https://www.facebook.com/LHB0222/ https://www.instagram.com/ahb0222/ 有疑問想討論的都歡迎於下方留言 喜歡的幫我分享給所有的朋友 \o/ 有所錯誤歡迎指教 # [:page_with_curl: 全部文章列表](https://hackmd.io/@LHB-0222/AllWritings) ![](https://i.imgur.com/nHEcVmm.jpg)