使用matplotlib的pyplot時,是支援unicode的,但預設字型是英文本型,導致中文無法正常顯示。
解決方法有兩種。
一種是手動指定,在**中
from matplotlib.font_manager import fontproperties
font_song = fontproperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)
使用文字時指定引數 fontproperties=font_song 即可。
另一種是修改配置檔案中的預設字型,需要修改 matplotlibrc 檔案。
這一檔案的位置可以使用 matplotlib.matplotlib_fname() 檢視。
如果沒有修改會在site-package中。
在預設的matplotlibrc中有注釋,建議儲存在$home/.matplotlib/matplotlibrc下(win環境),防止在更新包時配置檔案被覆蓋。
通過 font.family : sans-serif 可以指定預設字型族為 sans-serif
之後在 font.sans-serif 的配置列表中最前加入中文字型即可。
但使用的中文字型應該為中文字型的名稱。
檢視系統的名稱可以通過font_manager檢視。
[ f.name for f in matplotlib.font_manager.fontmanager.ttflist ]
[ f.name for f in matplotlib.font_manager.fontmanager.afmlist ]
這兩個列表。
我使用的win10沒有simsun(宋體),只能使用stsong,不知是何原因。
另外微軟官網字型裡也找不到win10資訊(官網鏈結)。
Matplotlib修改預設字型及某些部分的字型
在使用matplotlib畫圖的時候,有時需要修改預設字型。一種常見的情況是修改全域性字型。另一種情況是需要對某些部分設定不同的字型,如標題和座標軸標籤設定為支援中文的宋體,其他部分保持預設。查詢相關資料後,我總結出一種比較方便的修改全域性及部分字型的方法。如下 python 1.檢視可用系統字型 ...
matplotlib中字型顯示
from matplotlib.font manager import fontproperties 字型管理器 font fontproperties fname r c windows fonts simsun.ttc size 15 設定中文標籤 plt.title u 測試 fontprop...
matplotlib中改變字型的方法
方法一 匯入字型檔案my font font manager.fontproperties fname r c windows fonts 方正粗黑宋簡體.ttf 1 注 在使用時需要加字型引數 匯入字型檔案時如果出錯可以看此文oserror errno 22 invalid argument u2...