本地 python3版本
用matplotlib或seaborn作图时,出现以下告警,表明是中文显示的问题。
/anaconda3/lib/python3.6/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))
/anaconda3/lib/python3.6/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))
/anaconda3/lib/python3.6/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans
下载字体simhei.ttf,并放在该目录下
/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf
删除缓存字体
rm -rf ~/.matplotlib/*.cache
修改配置
方法一、
vim /anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
# cat /Users/xiaqunfeng/anaconda2/envs/python27/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc
...
font.family : sans-serif
...
font.sans-serif : SimHei
...
axes.unicode_minus : False # use unicode for the minus symbol
...
方法二、
import matplotlib.pyplot as plt
# 指定默认字体
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['font.family']='sans-serif'
# 用来正常显示负号
plt.rcParams['axes.unicode_minus']=False
- 字体显示
有中文出现的情况,需要u'内容'
,比如plt.xlabel(u'横坐标')
同时还需在开头添加代码行:
#coding:utf-8
方法三:【我最常用】
直接加:
plt.rcParams[‘font.sans-serif’] = [‘Microsoft YaHei’]
(此条可能只适用于mac)