python中matplotlib中文乱码问题一劳永逸的解决。(亲测可行,彻底解决,不用额外附加相关代码)

一、前言

前几天报了个班跟着学数据分析,学到数据可视化的时候,刚开始导入matplotlib库的时候还没有问题。过了两天,问题出现了。中文乱码,如下图在这里插入图片描述
结果百度了一下,说是要在程序中加入如下代码:

plt.rcParams['font.sans-serif'] = ['simkai'] # 指定默认字体(楷体,这个可以在C盘windows fonts下面的默认字体里面找到,后面会提到)
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

结果试了下还是不行。当然最后知道了,是因为python目录下的第N层子目录里面的一个fonts里面没有KaiTi。当然可以通过复制或者下载其他字体到这个目录来解决这个问题。但是很麻烦,每次代码都需要添加这几行,对于有代码多一行能死的强迫症患者而言,这个方法显然不甚完美,今天我们就一劳永逸的解决他吧。

二、准备工作

这个其实可以省略,但是我还是建议加上,就是把待会要操作的几个文件添加到桌面快捷方式,待做完将其删除即可。如果你说通过ALT加Tab在这四五个文件夹中切换操作的话,你想不加也可以,那就忽略这一节直接到三、正文即可。

2.1、添加windows字体到桌面快捷方式

这个字体是在

C:\Windows

下的Fonts,将其添加到桌面快捷方式备用,如下
在这里插入图片描述
我们可以打开看到其中就是已经安装好的各种字体啦,将其拖到最下方(按下键盘上的end键可以直达最底部)是各种中文字体,如下图
在这里插入图片描述
别看上面的名称都是中文的其实他的名字都是英文命名的,可以通过右键属性查看,比如我们刚开始代码如下

plt.rcParams['font.sans-serif'] = ['simkai'] 

其中simkai就是如下这货
在这里插入图片描述

2.2、添加matplotlib缓存文件到桌面快捷方式

这个如果你一次操作不成功的话第二次肯定要删除的,所以也建议添加到桌面快捷方式
这个是在

C:\用户
或者
C:\Users\

下的几个用户中的一个,这个文件夹中包含 .matplotlib注意前面的不是多打的
到时候首先要删除之,然后进行下面的操作。如下图在这里插入图片描述

2.3、添加python目录下的matplotlib包的字体及配置文件到桌面快捷方式

这个没有固定的位置要看你的python安装路径
你可以右键python桌面快捷方式,属性,打开文件位置
如果不会可以查看这篇文章中的

二、准备工作 中的 1、获取你的python.exe的路径这一小节,有详细图示。

这样就进入到python根目录中,其就在根目录下的如下路径

Lib\site-packages\matplotlib\mpl-data\fonts

Lib\site-packages\matplotlib\mpl-data\matplotlibrc

如下图将其添加到桌面快捷方式即可
在这里插入图片描述
当然大家可能注意了这个图中的快捷方式名字有所不同。因为涉及到windows字体和py根目录下的字体两个文件都是以Fonts命名的,那么如果你不加以区分可能正文部分会搞混。
至此准备工作全部完工。得到如下快捷方式
在这里插入图片描述
他们在我电脑中的路径分别为,我的py安装在默认路径下,如果一样则可以参考:

系统字体:
C:\Windows下系统文件
————————————————————————————
缓存文件:
C:\Users\Administrator.DESKTOP-1q2w3e
(其中最后的1q2w3e是乱编,你们的不出意外应该是形如此字样的文件夹)
————————————————————————————
py字体:
C:\Users\Administrator.DESKTOP-1q2w3e\AppData\Local\Programs\Python\Python38\Lib\site-packages\matplotlib\mpl-data 下的fonts文件夹
————————————————————————————
matplotlibrc 配置文件
C:\Users\Administrator.DESKTOP-1q2w3e\AppData\Local\Programs\Python\Python38\Lib\site-packages\matplotlib\mpl-data 下的matplotlibrc 文件

下面我们进入正文吧!

三、正文

3.1、关闭各种py编辑器,删除缓存

这个没什么可说,点击刚刚桌面上新建的 缓存文件 的快捷方式,删除其中的.matplotlib即可如下
在这里插入图片描述

3.2、matplotlib中文字体的安装

3.2.1、打开我们刚刚创建的系统自字体快捷方式选择一个字体复制。注意此时要顺带查看一下他的英文名如下图
在这里插入图片描述
这里我们还是用我们刚开始的那个字体,首先要右键属性记住其英文名字。

这里建议粘贴到新建文本文档待用,或者也可以粘贴到 微信中的文件传输助手或者qq中的给手机发送消息的对话框中。

3.2.2、复制这个字体,打开快捷方式py字体中的fonts下的ttf文件
粘贴即可。如下
在这里插入图片描述
至此你就可以运用上面的两行代码进行设置字体了

plt.rcParams['font.sans-serif'] = ['simkai'] # 指定默认字体(楷体,这个可以在C盘windows fonts下面的默认字体里面找到,后面会提到)
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

当然喽,这样你每次画个图还要多两行代码,对于强迫症患者很不友好。同样的我如果这样就写结语,那么妥妥的标题党无疑。
接下来就得在最后一个还没动的快捷方式matplotlibrc 中做文章了。

3.3、matplotlibrc 配置文件的更改

3.3.1、中文字体的配置

打开这个桌面这个matplotlibrc 配置文件的快捷方式(如果没有相应的编辑器可以右键打开方式记事本)
更改如下参数:
在这里插入图片描述
这一块要改的大概在190多行左右,有的可能130多行,你可以直接ctrl+f查找。
首先将上图中1,2,3行中的#号去掉,未改的时候是注释状态。
将第二行第三行中冒号后面加上你刚刚安装的字体的英文名,也就是3.2.2结尾你复制到新建文本文档备用的那个字符串。这里我以前是用的宋体simhei。

这里一定要注意加上英文庄状态下的逗号
在这里插入图片描述

3.3.2、负号乱码的配置

这个在配置文件的320多行左右,同样可以通过关键字搜索.
在这里插入图片描述
如上图将这一行的#号去掉,将其中的True改为False。然后保存关闭即可。

四、结语

到此,不出意外我们的乱码问题基本全部解决
我们画个图验证下,
在这里插入图片描述
beautiful!到此这个让人厌恶的框框终于解决了,那么你的呢,解决没??
好了,到此文章全部完成。还是老样子,有任何问题私信评论都行。个别图片来源于网络,如有侵权联系删除,谢谢。

Title: the 5th blog
By:P&p
Time:2020-03-14 01:06 (学python的第43天)
在这里插入图片描述

P&p
发布了6 篇原创文章 · 获赞 28 · 访问量 1302

猜你喜欢

转载自blog.csdn.net/kangxiaoyanl/article/details/104850976