Python matplotlib对中文的支持(Font family [‘sans-serif‘] not found.Falling back to DejaVu Sans)

一、问题描述

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

使用matplotlib画图,在Windows下正常,在linux环境下中文乱码
Font family [‘sans-serif’] not found.Falling back to DejaVu Sans

二、解决方案

在linux环境中的matplotlib里装入SIMHEI.TTF字体即可

三、解决步骤

1、点击下载SIMHEI.TTF字体
2、把字体放到指定目录

# python 终端获取路径
import matplotlib    
print(matplotlib.matplotlib_fname())
#/root/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

# 下载好的SIMHEI.TTF放到该目录下 
# (shell)
mv ./SIMHEI.TTF /root/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/

3、删除matplotlib的缓冲目录

# python 终端获取缓存路径
import matplotlib
print(matplotlib.get_cachedir())
# /root/.cache/matplotlib

# 删除缓冲目录
# (shell)
rm -rf /root/.cache/matplotlib

4、修改matplotlibrc文件

# (shell)
vim /root/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

# 修改的内容
 font.family         : sans-serif   
 # 去掉前面的#     
 font.sans-serif     : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif  
 # 去掉前面的#,并在冒号后面添加SimHei
 axes.unicode_minus  : False
 # 去掉前面的#,并将True改为False

5、重新测试,问题搞定。

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值