Windows中matplotlib中文乱码问题解决笔记

方法一:添加两行代码

在你的代码开始加上以下3、4行两句,利用matplot的reParams属性配置。

import matplotlib.pyplot as plt  # 导入模块

plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文
plt.rcParams['axes.unicode_minus'] = False  # 显示负号

plt.figure(figsize=(14, 8))
plt.plot([1,2,3], [4,5,6], label="图例")
plt.xlabel("横坐标")
plt.ylabel("纵坐标")
plt.legend(loc="best")
plt.show()

方法二:修改配置文件

  • 找到配置文件所在路径:ipython中输入如下代码,得到配置文件matplotlibrc的路径
import matplotlib
matplotlib.matplotlib_fname()

像这样,这是我的文件路径 'D:\\Programs\\Anaconda3\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'。

  • 复制字体文件

Windows10 的字体文件在C:\Windows\Fonts路径下,找到一种中文字体,文件后缀名要是TTF的才行,可以在属性中看到。复制到的路径就是上面配置文件的同级目录下的fonts文件中,看图秒懂。

Windows中matplotlib中文乱码问题解决笔记_第1张图片

Windows中matplotlib中文乱码问题解决笔记_第2张图片

  • 打开matplotlibrc文件进行修改

去掉 font.family 一句前面的注释;去掉 font.sans-serif 一句前面的注释,在冒号后面第一个位置添加复制过来的字体文件名,我这里就是 STXINWEI。

Windows中matplotlib中文乱码问题解决笔记_第3张图片

修改好了保存文件,重新运行python文件,这时就不需要方法一的两句代码了(交互式环境需要退出再重启)

import matplotlib.pyplot as plt

# plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
# plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.figure(figsize=(14, 8))
plt.plot([1,2,3], [4,5,6], label="图例")
plt.xlabel("横坐标")
plt.ylabel("纵坐标")
plt.legend(loc="best")
plt.show()

嗨哟,文字出来啦!

Windows中matplotlib中文乱码问题解决笔记_第4张图片

方法二参考(感谢博主!):https://blog.csdn.net/ningyingqi/article/details/78802135

 

   

你可能感兴趣的:(笔记)