Matplotlib绘图中文乱码,完整解决方法总结!

你好,我是郭震

这篇文章总结,matplotlib绘图,图中文字体出现乱码问题。

在使用Matplotlib进行绘图时,中文字体可能会显示为乱码,因为Matplotlib默认的字体不支持中文。为了在图表中正确显示中文,你需要进行一些额外的配置。以下是一个解决方案,它包括设置Matplotlib以使用支持中文的字体:

步骤 1: 安装中文字体

首先,确保你的系统中安装了至少一种支持中文的字体。常见的中文字体包括“宋体”、“微软雅黑”等。

步骤 2: 配置Matplotlib以使用中文字体

方式一:临时设置(仅影响当前脚本)

你可以在脚本中临时设置Matplotlib的字体,以支持中文显示。

import matplotlib.pyplot as plt
import matplotlib

# 指定默认字体
matplotlib.rcParams['font.family'] = 'SimHei'  # 或其他支持中文的字体
matplotlib.rcParams['axes.unicode_minus'] = False  # 解决负号'-'显示为方块的问题

plt.plot([1, 2, 3], [4, 5, 6])
plt.title('中文标题')
plt.show()
方式二:修改Matplotlib配置文件(全局设置)

你也可以修改Matplotlib的配置文件matplotlibrc来永久改变默认字体设置。

  1. 运行以下代码找到配置文件的位置:

import matplotlib
   print(matplotlib.matplotlib_fname())
  1. 打开该配置文件,在文件中找到以下行:

#font.family: sans-serif
 #font.sans-serif: SimHei
  1. 去掉这两行前面的注释符号#,并确保font.sans-serif后面指定的是你系统中存在的、支持中文的字体。

  2. 保存文件,并在新的Python脚本中测试是否能够正确显示中文。

步骤 3: 安装和使用第三方字体

如果你的系统中没有安装需要的字体,或者你想使用特定的第三方字体,你可以按照以下步骤操作:

  1. 下载或获得.ttf格式的字体文件。

  2. 使用matplotlib.font_manager模块加载字体文件:

from matplotlib.font_manager import FontProperties
 import matplotlib.pyplot as plt
 
 font = FontProperties(fname='路径到你的.ttf字体文件', size=14)
 
 plt.plot([1, 2, 3], [4, 5, 6])
 plt.title('中文标题', fontproperties=font)
 plt.show()

通过以上步骤,你应该能够在Matplotlib绘图中正确显示中文了。

741ccd0bfe6a674e68439379492dc90d.png

我打造了一个《Python从零到高薪就业全栈视频课》,目前上线700节课程,每节课15分钟,总共超180个小时。包括:《从零学Python》、《Python进阶》、《爬虫》、《NumPy数值分析》、《Pandas数据分析》、《Matplotlib和Pyecharts绘图》、《PyQt软件开发》、《接单项目串讲》、《Python办公自动化》、《多线程和多进程》、《unittest和pytest自动化测试》、《Flask和Django网站开发》、《基础算法》、《人工智能入门》、《机器学习》、《深度学习》、《Pytorch实战》,将我过去工作8年以及现在科研的经历都融入到课程中,里面有很多实际项目,是一个全栈技术课。

如果你想掌握全栈开发技术,提升你自己,提升就业能力,多学技能做副业项目赚钱等,可以报名,课程带有我的答疑。价格现在比较优惠,推荐现在加入。长按下方二维码查看,报名后加我微信:gz113097485

a98150dd1045b84e93a997e444c039ea.png

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值