報錯信息: UserWarning: findfont: Font family [u'sans-serif'] not found. Falling back to DejaVu Sansphp
找不到字體,在繪製的圖片中中文顯示亂碼python
解決方法:緩存
1. 查看配置路徑:字體
import matplotlib print (matplotlib.matplotlib_fname())
2. 下載字體:simhei.tff : http://www.font5.com.cn/font_download.php?id=151&part=1237887120spa
3. 將字體拷貝到 tff 目錄下:code
/home/hwy/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/tff/blog
5. 刪除字體緩存文件:圖片
首先找到字體緩存文件的位置:unicode
import matplotlib as mpl fm = mpl.font_manager fm.get_cachedir()
這是我緩存文件的位置:get
/home/hwy/.cache/matplotlib/
刪掉就行了:
rm -rf /home/hwy/.cache/matplotlib/
6. 字體參數設置:
修改配置文件 matplotlibrc:
將一下三句修改,並將 # 去掉:
font.family : sans-serif ... font.sans-serif : SimHei ... axes.unicode_minus : False # use unicode for the minus symbol
意思就是知道字庫族爲 sans-serif,同時添加「SimHei」即宋體到字庫族列表中,同時將找到axes.unicode_minus,將True改成False,做用就是解決負號’-‘顯示爲方塊的問題。
成功顯示中文了!!
下面的博客配置的蠻好的。