matplotlib不加额外代码显示中文的方法

在网上看了许多的帖子都发现多多少少有些缺陷,容易因为一些小问题而导致最后还是显示中文乱码。做了一个总结,基本上是所有的坑都踩了。

第一步:

找到Python的安装目录:
忘记安装路径的运行以下代码:

import matplotlib 
print(matplotlib.matplotlib_fname()) 

打开后下面应该有这些
在这里插入图片描述
在这里插入图片描述

准备工作:下载一个tff字体(黑体啊 宋体啊这样子)
我下载的是黑体 SimHei
在这里插入图片描述

下载好放进字体的tff文件夹里面。

第二步:

打开这个配置文件
在这里插入图片描述

随便一个能打开的就好了。打开后如下

在这里插入图片描述

重要的来了:有三步要改的!三步!!!

  1. 寻找font.family,找到下面的那一行代码,把前面的注释号#删掉
  2. 寻找font.sans-serif,找到图示代码,还是把前面的注释号#删掉,并且添加你安装字体的名字在第一位!第一位!第一位!我安装的是黑体,字体名字在文件夹下叫做SimHei,就把 SimHei打在第一位。
  3. 寻找axes.unicode_minus,把True改为Flase.;一样的,有注释删注释

在这里插入图片描述
在这里插入图片描述

在这基本就完成了。保存并关闭配置文件,再删掉这个.matplotlib文件夹,然后在cmd或者你的pycharm等中运行以下代码
在这里插入图片描述

from matplotlib.font_manager import _rebuild
_rebuild() 

到这就完工了。不用再添加其他代码,可以直接显示中文了。

import numpy as np
import matplotlib.pyplot as plt
m, n = (5, 3)
x = np.linspace(0, 1, m)
y = np.linspace(0, 1, n)
X, Y = np.meshgrid(x,y)
plt.title("不加额外代码显示中文")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(X, Y, marker='.', color='blue', linestyle='none')
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值