在网上看了许多的帖子都发现多多少少有些缺陷,容易因为一些小问题而导致最后还是显示中文乱码。做了一个总结,基本上是所有的坑都踩了。
第一步:
找到Python的安装目录:
忘记安装路径的运行以下代码:
import matplotlib
print(matplotlib.matplotlib_fname())
打开后下面应该有这些
准备工作:下载一个tff字体(黑体啊 宋体啊这样子)
我下载的是黑体 SimHei
下载好放进字体的tff文件夹里面。
第二步:
打开这个配置文件
随便一个能打开的就好了。打开后如下
重要的来了:有三步要改的!三步!!!
- 寻找font.family,找到下面的那一行代码,把前面的注释号#删掉
- 寻找font.sans-serif,找到图示代码,还是把前面的注释号#删掉,并且添加你安装字体的名字在第一位!第一位!第一位!我安装的是黑体,字体名字在文件夹下叫做SimHei,就把 SimHei打在第一位。
- 寻找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()