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文件中,看图秒懂。

  • 打开matplotlibrc文件进行修改

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

修改好了保存文件,重新运行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()

嗨哟,文字出来啦!

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

 

   

matplotlib在显示中文字符时可能会出现乱码的问题,这通常是由于字体设置不当导致的。解决matplotlib中文乱码的方法通常包括以下几个步骤: 1. 确保系统安装了支持中文的字体。matplotlib默认不包含中文字体,因此需要手动设置字体。 2. 在代码指定matplotlib使用支持中文的字体。这可以通过修改matplotlib的配置参数来实现。具体方法是设置`matplotlib.rcParams`的`font.family`和`font.serif`属性为支持中文的字体。 3. 如果使用的是IPython环境,还可以通过IPython的魔法命令`%matplotlib inline`来配置matplotlib。 下面是一个简单的示例代码,展示如何设置matplotlib的字体以解决中文乱码问题: ```python import matplotlib.pyplot as plt # 设置matplotlib的配置参数,指定字体为支持中文的字体 plt.rcParams['font.family'] = ['sans-serif'] # 用于正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 # 或者直接设置为支持中文的字体,例如:'SimHei', 'SimSun', 'Microsoft YaHei' plt.rcParams['font.serif'] = ['SimHei'] plt.figure(figsize=(8, 4)) # 创建一个宽为8英寸,高为4英寸的图 plt.title("这是一个中文标题") plt.xlabel("这是x轴") plt.ylabel("这是y轴") plt.plot([1, 2, 3], [10, 20, 30]) # 绘制简单的折线图 plt.show() ``` 以上代码,通过`plt.rcParams`设置了matplotlib的字体参数,使得图表中文标签能够正常显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值