解决matplotlib中文乱码问题(Ubuntu16.04 Or Mac)

Matplotlib中文显示配置
本文详细介绍了如何在Matplotlib中正确显示中文字符的方法。包括解决因安装多个版本库导致的问题,配置字体文件路径,以及调整配置文件以支持中文显示等步骤。

网上教程很多,但是折腾了好久才弄好。特此记录一下。

  1. 查看matplotlib配置文件位置
>>> import matplotlib
>>> print matplotlib.matplotlib_fname()
/usr/local/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc

PS:因为之前安装了两个matplotlib的库。所以这里会有问题。

  • 一个使用sudo apt-get install python-matplotlib安装,在root用户下。
  • 一个使用pip install matplotlib普通用户安装。

删除root目录下的matplotlib,使用命令sudo apt-get remove python-matplotlib后,才能显示正常的matplotlib配置文件。

  • 永久解决方法
  1. 首先将windwos中fonts目录下的simhei.ttf拷贝到上一步获取到的路径中

/usr/local/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf

或者

/usr/share/matplotlib/mpl-data/fonts/ttf

  1. 修改第一步的配置文件/usr/local/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc

    # 添加以下内容
    font.family         : sans-serif
    font.sans-serif     : SimHei
    axes.unicode_minus  : False  #解决负号'-'显示为方块的问题
    
  2. 删除~/.cache/matplotlib的缓冲

  3. 重新加载字体

    from matplotlib.font_manager import _rebuild
    _rebuild() 
    
  4. 验证
    新建python文件,输入以下内容

# -*- coding:utf-8 -*-
from matplotlib import pyplot as plt
plt.title(u'显示中文')
plt.show()

若出现如下图的中文字符,则说明更改成功。
这里写图片描述

最后附上simhei.ttf的链接
simhei.ttf

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值