解决matplotlib里中文乱码的问题

参考文章:Matplotlib中文乱码问题解决方案 - 知乎 (zhihu.com)

1.前言:

因为matplotlib中没有中文字体文件,所以需要自己下载字体文件后补充进去。

以“仿宋_GB2312”为例介绍,这里是仿宋_GB2312的字体文件。

链接:https://pan.baidu.com/s/1p8r3Q1iPVJCXW4PGjwSH8g 
提取码:vfd2 
 

2.可行测试:

首先,使用改行代码根据控制台的输出找到matplotlib包所在的配置文件的路径。

import matplotlib
print(matplotlib.matplotlib_fname())
# 输出matplotlib包所在的配置文件的路径

进入下图的路径中,可以看到有一个“fonts”文件,这个文件里存放的就是matplotlib包所包含的字体文件,里面并没有中文字体,所以将之前下载的“仿宋_GB2312”文件复制进去。

注意:这个字体文件的命名不能含有中文,所以将文件命名为“fangsong_GB2312”

其次,在程序开头添加如下代码测试是否可以正确使用中文字体,如果可以测试阶段则结束。

plt.rcParams['font.sans-serif'] = ['fangsong_GB2312']
# Matplotlib中设置字体-黑体,解决Matplotlib中文乱码问题
plt.rcParams['axes.unicode_minus'] = False
# 解决Matplotlib坐标轴负号'-'显示为方块的问题

3.根本解决方法:

首先,回到matplotlib包的路径,使用记事本方式打开“matplotlibrc”文件。

其次,找到 #font.sans-serif,去掉前面的#,并在:后面写上在准备工作加入的中文字体的名 称fangsong_GB2312

接着,找到#axes.unicode_minus,去掉前面的#,并在:改为False

注意:修改完毕后记得保存关闭。

最后,可以使用everything软件找到“.matplotlib”文件,应该是在c盘的user路径下。

打开该路径下的文件夹,删除tex.cache文件和fontList.json文件

一顿操作完后,即可删掉第二步中测试的代码,最后重启即可解决问题。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值