mac上Matplotlib中文乱码问题

本地 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
  1. 下载字体simhei.ttf,并放在该目录下
    /anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf

  2. 删除缓存字体
    rm -rf ~/.matplotlib/*.cache

  3. 修改配置
    方法一、

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
  1. 字体显示
    有中文出现的情况,需要 u'内容',比如 plt.xlabel(u'横坐标')
    同时还需在开头添加代码行:
#coding:utf-8

方法三:【我最常用】
直接加:
plt.rcParams[‘font.sans-serif’] = [‘Microsoft YaHei’]
(此条可能只适用于mac)

猜你喜欢

转载自blog.csdn.net/minixuezhen/article/details/81516949