Matplotlib 中文亂碼解決
Matplotlib 中文亂碼解決
Matplotlib 是 Python 中很好用的一個繪圖 Package,但原生並不支援中文 可透過加入並指定中文字型,使其可正確顯示中文 方式如下:
找到中文的字體檔(ttf/otf)
由Google與Adobe一同推出的 思源黑體(Noto Sans CJK TC) 與 思源宋體(Noto Serif CJK TC)。 可以到 Google Noto Fonts 來下載,搜尋 ”Traditional Chinese” 就可以找到,如下圖。
將字體放到matplotlib的字體套件資料夾
使用以下指令查詢安裝路徑
1
2
import matplotlib
print(matplotlib.__file__)
出現位置: /opt/conda/lib/python3.7/site-packages/matplotlib/init.py
/opt/conda/lib/python3.7/site-packages/matplotlib 即為安裝路徑
將字型檔複製到 matplotlib\mpl-data\fonts\ttf
接著打開剛剛下載的字體壓縮檔,你會發現許多個字體檔,只要選擇一個順眼的字體丟到matplotlib\mpl-data\fonts\ttf即可。
刪除當前使用者matplotlib 的緩衝檔案
1
2
$cd ~/.cache/matplotlib
$rm -rf *.*
程式中調整字型
1
2
3
4
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
plt.title(u'中文測試') #這裡的 u 最好不要省略
參考:
本文章以 CC BY 4.0 授權