1.安裝庫pip3 install matplotlib(具體見博客)
2.向Matplotlib添加中文字體Microsoft YaHei(微軟雅黑)
Matplotlib不能默認使用中文字體顯示字符的原因只是因為其未包含中文字體文件,所以導入中文字體文件到Matplotlib中即可。
網上下載微軟雅黑的ttf文件。Microsoft YaHei.ttf(在研究生文件夾雜里面,網上隨便找一個也行,很容易)
D:\python\Lib\site-packages\matplotlib\mpl-data(新電腦在C盤python39,裝python的地方)
打開這個目錄可以看到這個路徑下的mpl-data/fonts/ttf/,這個就是Matplotlib引入字體的路徑,我們只需要把微軟雅黑字體的ttf文件拷貝到其中即可。
3.修改Matplotlib的默認字體配置
mpl-data/matplotlibrc這個文件,這個就是Matplotlib的配置文件。
在這個文件中搜索font.family,其中font.family: sans-serif將#刪除即把此行注釋打開。則Matplotlib現在的默認字體族是:
font.family : sans-serif
再在這個文件中搜索font.sans-serif,將#刪除即把此行注釋打開,然后在這個配置的最前面加上Microsoft YaHei,
font.sans-serif : Microsoft YaHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
則Matplotlib現在的默認sans-serif字體族會最先使用Microsoft YaHei去展示字體,而這個Microsoft YaHei就可以展示中文字體了。
(axes.unicode_minus : True這一行注釋去掉,將true改成false,,,此處用來正常顯示負號)(可不做)
4.清除字體緩存(可不做)
為了更好地看到效果,最好可以清楚之前Matplotlib生成的緩存文件,打開~/.matplotlib路徑,其中可以看到fontList.json和tex.cache,前者其實就是字體列表的緩存文件,可以刪除:rm -rf fontList.json
5.當然,懶辦法顯示中文字體
每次用時需要設置
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽(動態設置)
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
參考:
(版權聲明:本文為CSDN博主「weixin_39531780」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。)
(原文鏈接:https://blog.csdn.net/weixin_39531780/article/details/111423990)