matplotlib中文報錯問題及解決方案

Z_shoushow發表於2020-10-15
UserWarning: findfont: Font family [‘SimHei’] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))

在使用matplotlib包中進行中文字元插入時,遇到如上報錯 not found

解決方法:

1、首先使用matplotlib_fname函式找到對應的安裝包所在位置

import matplotlib

print(matplotlib.matplotlib_fname())
output:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

2、下載SimHei字型

下載地址:http://www.xiazaiziti.com/210356.html

3、將所下載的SimHei.ttf 檔案放置在上邊安裝包檔案的  ttf  目錄中

matplotlib/mpl-data/fonts/ttf

4、修改mpl-data目錄下的matplotlibrc檔案

修改以下三項(注:SimHei加入到font.sans-serif中)

font.family: sans-serif

font.sans-serif: SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

axes.unicode_minus: False # 解決負號'-'顯示為方塊的問題

5、重新載入字型,在 Python 中執行如下程式碼

from matplotlib.font_manager import _rebuild
_rebuild() # reload重新載入

 

相關文章