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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  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

Python中安装字体有多种方法。一种常见的方法是使用matplotlib库来设置字体。首先,你需要确定要安装的字体文件的路径。假设你要安装的字体是simkai.ttf,并且该字体文件位于'/usr/share/fonts/truetype/msttcorefonts/'目录下。接下来,你可以使用以下代码来设置字体: ```python import matplotlib.pyplot as plt import matplotlib.font_manager as font_manager fontpath = '/usr/share/fonts/truetype/msttcorefonts/simkai.ttf' prop = font_manager.FontProperties(fname=fontpath) plt.rcParams['font.family'] = prop.get_name() ``` 上述代码中,我们使用font_manager模块加载字体文件,并将其设置为默认的字体。然后,使用plt.rcParams将该字体应用于所有的matplotlib图形。 此外,你还可以安装Windows下的字体到Ubuntu系统中。具体步骤如下: 1. 将Windows中的字体文件(.ttf或.otf)复制到Ubuntu系统的字体目录中,通常位于'/usr/share/fonts/truetype/'或'~/.fonts/'目录下。 2. 在终端中运行命令`sudo fc-cache -f -v`来刷新系统字体缓存。 这样,你就可以在Python中使用已安装的字体了。请注意,安装字体需要管理员权限,因此可能需要使用sudo命令。 综上所述,你可以通过matplotlib库来设置Python中的字体,也可以将Windows下的字体安装到Ubuntu系统中供Python使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux Ubuntu 16.04 Python matplotlib安装中文字体,黑体,楷体,Times New Roman等,解决中文乱码](https://blog.csdn.net/u014712482/article/details/85802563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值