python中matplotlib畫圖中文亂碼的解決方法

問題

在python中使用matplotlib畫圖,裏面的中文會顯示亂碼方塊。

解決方法

這是由於matplotlib默認使用的字體中不包含中文字符引起的,可以通過將中文字符加入到默認字體中解決。

前提:查找本地都有哪些中文字體

打開matplotlib字體,默認爲C:\Users\用戶名\.matplotlib,打開fontList.json,查找中文字體如simHei,song,kai等,分別對應簡體黑、宋體、楷體等。

查找到之後,其對應的name字段值即爲我們接下來將要設置的中文字體名,複製下來,比如中宋字體STZhongsong
在這裏插入圖片描述

方法一:代碼解決

在腳本開頭加入以下語句即可:

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['STZhongsong']    # 指定默認字體:解決plot不能顯示中文問題
mpl.rcParams['axes.unicode_minus'] = False           # 解決保存圖像是負號'-'顯示爲方塊的問題

方法二:永久解決

運行下面的代碼:

import matplotlib
print(matplotlib.matplotlib_fname())

會輸出配置文件路徑,如:

C:\Users\gong\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

打開此文件,找到#font.family:#font.sans-serif:開頭的這兩行,將兩行的註釋#去掉,並在font.sans-serif:後添加自己想加入的中文字體名,如:
在這裏插入圖片描述
然後保存文件,重新運行python環境即可,不必在代碼中做出任何修改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章