欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mac上Matplotlib中文乱码问题

程序员文章站 2022-03-21 11:13:26
...

本地 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)