IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 解决Macos中Python Matplotlib库中文显示乱码问题 -> 正文阅读

[Python知识库]解决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 matplotlib
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
 
font = {
    "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 = p
    return (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 + b
ax = 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的一个过程

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

我是 海轰?(?ˊ?ˋ)?

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

谢谢支持 ??

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:39:58  更:2021-08-18 12:40:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 11:25:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计