圖表顯示中文
使用 matplotlib 繪製圖表時只能顯示英文,如果直接輸入中文將會出現亂碼,這篇教學將會介紹如何載入外部字體,讓圖表可以正確的顯示中文。
快速導覽
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
使用 matplotlib.font_manager
由於 matplotlib 繪製圖表時只能顯示英文,因此必須使用 matplotlib.font_manager 進行字體的管理和設定,下方的例子將中文字型放在 Google 雲端硬碟,再使用 Colab 連接對應的路徑,接著設定 fontproperties 參數,就能顯示中文。
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties as font
# 設定字型的路徑
font1 = font(fname="/content/drive/MyDrive/Colab Notebooks/font/NotoSansTC-Regular.otf")
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
# 設定 fontproperties 參數,指定字型
plt.title('這是圖表', fontproperties=font1, fontsize=20)
plt.show()
一張圖表,多種中文字型
使用同樣的方法,可以指定多種中文字型,下方的例子,title 使用 font1 的中文字型,xlabel 和 ylabel 則使用 font2 的中文字型。
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties as font
font1 = font(fname="/content/drive/MyDrive/Colab Notebooks/font/NotoSansTC-Regular.otf")
font2 = font(fname="/content/drive/MyDrive/Colab Notebooks/font/wlcmaru2004emojip.ttf")
x = [1,2,3,4,5]
fig = plt.figure()
plt.plot(x)
plt.title('這是圖表', fontproperties=font1, fontsize=20)
plt.xlabel('X 軸', fontproperties=font2, fontsize=20)
plt.ylabel('Y 軸', fontproperties=font2, fontsize=20)
plt.show()
下載 Google Font 免費字型
Google Font 是 Google 提供的免費字型,目前 Google Font 提供兩種繁體中文字型,可透過下面的網址進行下載。
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~