Matplotlib中文字體顯示

在Mac上安裝Matplotlib

不使用Anaconda,直接使用pip安裝便可:python

pip3 install matplotlib

向Matplotlib添加中文字體Microsoft YaHei(微軟雅黑)

Matplotlib不能默認使用中文字體顯示字符的緣由只是由於其未包含中文字體文件,因此導入中文字體文件到Matplotlib中便可。json

Matplotlib的安裝位置,若是使用pip3安裝則其默認的安裝路徑在/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/matplotlib/
固然你也能夠經過以下程序肯定你的Mac上的Matplotlab的安裝路徑:緩存

import matplotlib
print(matplotlib.matplotlib_fname())

打開這個目錄能夠看到這個路徑下的mpl-data/fonts/ttf/,這個就是Matplotlib引入字體的路徑,咱們只須要把微軟雅黑字體的ttf文件拷貝到其中便可。bash

修改Matplotlib的默認字體配置

仍然在上述的Matplotlib安裝路徑中,能夠看到mpl-data/matplotlibrc這個文件,這個就是Matplotlib的配置文件。測試

在這個文件中搜索font.family,將#刪除即把此行註釋打開。則Matplotlib如今的默認字體族是:字體

font.family         : sans-serif

再在這個文件中搜索font.sans-serif,將#刪除即把此行註釋打開,而後在這個配置的最前面加上Microsoft YaHeispa

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就能夠展現中文字體了。code

清除字體緩存

爲了更好地看到效果,最好能夠清楚以前Matplotlib生成的緩存文件,打開~/.matplotlib路徑,其中能夠看到fontList.jsontex.cache,前者其實就是字體列表的緩存文件,能夠刪除之:blog

rm -rf fontList.json

測試效果

以下測試代碼查看是否生效:ip

# coding:utf-8
import matplotlib.pyplot as plt

plt.plot((1, 2, 3), (4, 3, -1))
plt.xlabel(u'橫座標')
plt.ylabel(u'縱座標')
plt.show()

執行效果以下所示:

相關文章
相關標籤/搜索