1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 解决Macos中Python Matplotlib库中文显示乱码问题

解决Macos中Python Matplotlib库中文显示乱码问题

时间:2022-01-28 02:57:41

相关推荐

解决Macos中Python Matplotlib库中文显示乱码问题

前言

Hello!小伙伴!

非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~

自我介绍ଘ(੭ˊᵕˋ)੭

昵称:海轰

标签:程序猿|C++选手|学生

简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python

学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

初学Python 小白阶段

文章仅作为自己的学习笔记 用于知识体系建立以及复习

题不在多 学一题 懂一题

知其然 知其所以然!

解决方法

这个问题自己还是困扰了挺久,最开始的时候在菜鸟教程中找到了一个解决办法

虽然可以解决中文乱码问题,但是每次使用中文时都需要设置字体类型,非常麻烦

然后在百度找到了一些方法,发现写的不是很明白,以及遇到了一些坑

这里总结一下,分享给小伙伴

步骤1

如果之前安装了Matplotlib库,建议先卸载,重新装一遍

海轰之前按照教程 一次都没有成功 后面重新安装了一次Matplotlib 一下就成功了!

卸载

pip3 uninstall Matplotlib

安装

pip3 install Matplotlib

步骤2

下载中文字体

ttf格式就可以

具体可以百度搜索 或者 找海轰要字体安装包也可以

然后解压出来(解压出啥就可以 不用重命名)

步骤3

找到Matplotlib的安装位置 (这个就自己找了吧)

# 海轰的安装位置/Users/haihong/Library/Python/3.7/lib/python/site-packages

进入Matplotlib文件夹,找到mpl-data文件夹

进入Matplotlib文件夹,找到fonts文件夹

进入fonts,找到ttf文件夹

将下载好的字体粘贴到这里

然后双击字体,选择安装这个字体(重点!)

步骤4

在mpl-data文件夹中找到matplotlibrc

以文本编辑打开这个文件

找到font.family(使用command+f查找即可)

然后去除前面的#号

这里显示的去除后的,本来前面有一个#号

然后找到font.sans-serif

同样也是去除前面的#号

这里是去除后的图片

然后在最后添加Microsoft YaHei

保存文件后,退出

步骤5

这样一来,每次只需要添加下面两句代码,就可以正确显示中文啦

font = {"family": "Microsoft YaHei"}matplotlib.rc("font", **font)

重启编译器,测试中文是否显示正确

测试代码:

import matplotlibimport numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import leastsqfont = {"family": "Microsoft YaHei"}matplotlib.rc("font", **font)plt.figure(figsize=(9, 9))X = np.array([8.19, 2.72, 6.39, 8.71, 4.7, 2.66, 3.78])Y = np.array([7.01, 2.78, 6.47, 6.71, 4.1, 4.23, 4.05])# 计算以p为参数的直线与原始数据之间误差def f(p):k, b = preturn (Y - (k * X + b))# leastsq使得f的输出数组的平方和最小,参数初始值为[1,0]r = leastsq(f, [1, 0])k, b = r[0]plt.scatter(X, Y, s=100, alpha=1.0, marker='o', label=u'数据点')x = np.linspace(0, 10, 1000)y = k * x + bax = plt.gca()plt.plot(x, y, color='r', linewidth=5, linestyle=":", markersize=20, label=u'拟合曲线')plt.legend(loc=0, numpoints=1)leg = plt.gca().get_legend()ltext = leg.get_texts()plt.setp(ltext, fontsize='xx-large')plt.xlabel(u'安培/A')plt.ylabel(u'伏特/V')plt.xlim(0, x.max() * 1.1)plt.ylim(0, y.max() * 1.1)plt.xticks(fontsize=20)plt.yticks(fontsize=20)plt.legend(loc='upper left')plt.show()

注:如果还是不成功,就再卸载Matplotlib,重新安装一遍,然后按照前面的步骤做一遍,基本上就可以了

结语

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

我是海轰ଘ(੭ˊᵕˋ)੭

如果您觉得写得可以的话,请点个赞吧

谢谢支持 ❤️

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。