Python-matplotlib绘图及中文乱码问题

【Python】一步解决绘图时中文乱码问题(不需要额外下载字体) 解决使用matplotlib,seaborn,mpfinance绘图时的中文乱码问题 ... 阅读详情
AI摘要

本文介绍了Python的matplotlib库在数据分析和机器学习中的应用,详细讲解了matplotlib的安装、导入和基本使用,包括生成画布、绘制多条函数、添加标题和坐标信息等。此外,还重点探讨了matplotlib中文乱码的解决方案,通过设置全局字体来避免乱码问题。同时,文章提供了Python技术储备的相关学习资源,包括学习路线、视频教程、书籍和实战案例,适合Python初学者参考。

目录

  • 一、前言
    • 我的运行环境
  • 二、什么是matplotlib?
  • 三、安装及导入
  • 四、matplotlib的使用
  • 五、matplotlib中文乱码问题

一、前言

本人因在学习基于python的机器学习相关教程时第一次接触到matplotlib相关方面的绘图知识,故写此笔记进行记录,如果能帮助到其他人欢迎点个赞👍表示支持

我的运行环境

  1. 学习工具:jupyter-notebook
  2. python版本:311
  3. 系统:Win11

二、什么是matplotlib?

matplotlib是基于python生态开发的一个可视化绘图库,它的出现让python在数据分析及机器学习方面占了重要的一部分,目前很多数据分析及机器学习相关方面的工程都有使用到这个库,并且由于其简单易用,安装简单等方面的优势深得广大开发者的喜爱。

三、安装及导入

1.安装
pip install matplotlib
2. 导入项目
新建项目并直接import即可import matplotlib.pyplot as plt,简单易用

四、matplotlib的使用

  1. 基础使用:生成一个画布
#定义一个画布
#subplots(X,Y,figsize=(X,Y))
#其中figsize(X,Y) 用于定义画布的大小
fig,ax = plt.subplots(figsize = (10, 5))
plt.show()

  1. 生成多个子图(ax)
#subplots(X,Y)用于定义该画布有几行几列,即一个大画布fig上有多个小画布ax组成axes
fig,axes = plt.subplots(2,3,figsize = (10, 4))
plt.show()

  1. 绘制多个子图
#绘制多个子图
fig,axes = plt.subplots(1,2,figsize=(10,4))   #绘制一个一行两列的图

x=[1,20,40,15,2]
y=[4,6,15,7,6]

#对第一个子图进行绘制
bplot1 = axes[0].plot(x,y)

#绘制第二个子图
bplot2 = axes[1].plot(y,x)

  1. 同一块画布上绘制多条函数
#简单的线性图
# x = list(range(0,10))
# y =list(range(0,10))
# plt.plot(x,y)
plt.plot(range(12),color="red")  #等价于上面的操作
plt.plot([1,2,3])  #在现有的画布上继续绘画一条直线

  1. 放大图像(只显示函数图像的一部分)
#原函数图像
x=[1,20,40,15,2]
y=[4,6,15,7,6]
plt.plot(x,y)

#直接对x,y赋值
x=[1,20,40,15,2]
y=[4,6,15,7,6]
plt.plot(x,y)
#通过设定坐标轴刻度,只显示部分图形
plt.axis([0,10,0,10])   #x:[0,10],y:[0,10]

  1. 为图像添加标题横纵坐标信息
  • 添加标题和x、y名称
x=[1,20,40,15,2]
y=[4,6,15,7,6]
#添加标题
plt.title("matplotlibTest")
#添加x,y轴名称
plt.xlabel("Feature")
plt.ylabel("shape")
plt.plot(x,y)

  • 更改x、y轴刻度(纯数字形式)
x=[1,20,40,15,2]
y=[4,6,15,7,6]
#添加标题
plt.title("matplotlibTest")
#添加x,y轴名称
plt.xlabel("Feature")
plt.ylabel("shape")
#修改x轴刻度,纯数字形式
plt.xticks((0,10,20,30,40))
#修改y轴刻度,纯数字形式
plt.yticks((0,5,10,15,20))
plt.plot(x,y)

  • 更改x、y轴刻度(自定义坐标信息)
x=[1,20,40,15,2]
y=[4,6,15,7,6]
#添加标题
plt.title("matplotlibTest")
#添加x,y轴名称
plt.xlabel("Feature")
plt.ylabel("shape")
#自定义x轴坐标信息
plt.xticks((0,10,20,30,40),('text1','text2','text3','text4','text5'))
#自定义y轴坐标信息
plt.yticks((0,5,10,15,20),('align1','align2','align3','align4','align5'))
plt.plot(x,y)

  1. 基于axes的显示画图
#基于 axes 的显式画图:用 Axes 画图更加直观,所以被称为“显式画图”,直接用 Figure画图,被称为 “隐式画图”
import numpy as np
x = np.linspace(-1,1,50)  #生成50个-1到1之间的数
y = x**2

fig = plt.figure()  #生成空白画布
ax = fig.add_subplot() #空白的子图

ax.plot(x,y,color="red",linewidth=4,linestyle='-.',marker='o')  #绘画一条函数图

ax.plot(y,x)  #绘画另一条函数图

ax.legend(["y=x**2","y**2=x"])   #添加图例

ax.set_title('x and y',fontsize=20)  #设置标题
ax.set_xlabel("x label")  #设置x轴名称
ax.set_ylabel("y label")  #设置y轴名称
ax.set_xlim(-1,1)  #设置x轴范围
ax.set_ylim(-1,1)  #设置y轴范围

# ax.grid(linewidth=3,linestyle=':',color='purple',alpha=0.5)

plt.show()

8.其他
matplotlib除了生成上述的线性图以外还可以生成其他箱图等特殊的图像形式,具体可以参考matplotlib的官方文档

五、matplotlib中文乱码问题

本人使用的是全局字体的解决方案
1.从matplotlib导入font_manager,然后查看打印电脑已有的字体,具体代码如下:

from matplotlib import font_manager
import matplotlib.pyplot as plt

#打印电脑上所有已安装的字体
fontnamelist = font_manager.get_font_names() 

print(fontnamelist)

2.设置全局字体
根据第一步你电脑里所拥有的字体来设置全局字体,设置的字体名称与上面打印的名称一致就行
这里本人采用的是鸿蒙os简体字体

#设置全局字体为鸿蒙os简体
plt.rcParams['font.sans-serif']=['HarmonyOS Sans SC']  #用啥字体这里改,最重要的是你电脑里得事先安装有这个字体
#解决图像中的"-"负号的乱码问题
plt.rcParams["axes.unicode_minus"]=False 

x=[1,20,40,15,2]
y=[4,6,15,7,6]
#添加标题
plt.title("matplotlibTest测试")
#添加x,y轴名称
plt.xlabel("特征")
plt.ylabel("属性")
#自定义x轴坐标信息
plt.xticks((0,10,20,30,40),('文本1','文本2','文本3','文本4','文本5'))
#自定义y轴坐标信息
plt.yticks((0,5,10,15,20),('属性1','属性2','属性3','属性4','属性5'))
plt.plot(x,y)


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,希望提供给想学习 Python 的小伙伴们一点帮助!

保存图片微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以保存图片微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

Matplotlib中文乱码解决方案(两种方式) Matplotlib 默认不支持中文字体,这因为 Matplotlib 只支持 ASCII 字符,但中文标注更加符合中国人的阅读习惯。因此,本节重点讲解如何在 Windows 环境下让 Matplotlib 显示中文。 阅读详情

相关推荐

python3用matplotlib绘图出现中文乱码的问题【 Font family [u'sans-serif'] not found】

先附上一张乱码图和一张正常图 因为很多软件包都对中文不友好,所以想要使用中文,需要进行适当的调节。 在解决问题之前,我先说一下我的系统:Centos系统 针对此问题,很多资料给的都是以下的方法: 1 进入python 环境后,命令行输入以下代码: >>import matplotlib >>print(matplotlib.matplotlib_fname()) ...

丑小鸭 4581

matplotlib中文乱码问题

在使用Matplotlib进行数据可视化的过程中,经常会遇到中文乱码的问题。显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pyplot时,是支持unicode编码的,只是默认字体是英文字体,导致中文无法正常显示,所以显示中文乱码。文本使用系统默认字体、手动指定字体、使用字体管理器来解决。

深之JohnChen的专栏 6273

Python画图中文乱码解决方法

Python画图中文乱码解决方法

全栈川川 1900

Python中使用matplotlib时显示中文乱码_(或更改字体)

在使用matplotlib绘制可视化图表时,图表的中文显示乱码,只能正常显示英文内容; 一般显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pyplot时,是支持unicode编码的,只是默认字体是英文字体,导致中文无法正常显示,所以显示中文乱码。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

数据基础设施建设任务中的技术名词解析

近日,国家数据局确定了18个数据基础设施建设任务(先行先试)承担地区,建设任务内容为:数场、数据空间、数据原件、隐私计算、数联网、区块链。这些概念都有什么样的内涵,他们的相互关系是怎样的?

五角大寨 5305

基于SpringBoot+Vue的公司考勤管理系统

为什么选择我博主是优快云毕设辅导博客第一人兼开派祖师爷、博主本身从事开发软件开发、有丰富的编程能力和水平。专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流和合作。

m0_71849512的博客 1162

解决Python使用matplotlib绘图时出现的中文乱码问题

前言 最近使用学习Python中使用matplotlib绘图时发现控制台报如下问题,可知是中文字体问题 runfile('E:/PycharmProjects/PythonScience/matplotlib/testPlot.py', wdir='E:/PycharmProjects/PythonScience/matplotlib') F:\Anaconda3\lib\site-package...

逝不等琴生的博客 2万+

工业级越界行为识别数据集:YOLOv8/v9直接训练的围栏异常检测资源

越界行为识别是智能安防与工业安全中的基础视觉任务,其核心在于对人员、车辆等目标跨越物理边界(如围栏、警戒线、作业禁区)的精准检测与分割。该技术依赖于高质量实例分割标注、归一化坐标格式及场景鲁棒性设计,具备低延迟、高召回、强泛化等工程价值,广泛应用于智慧工地电子围栏、化工厂禁区告警、物流园区越界监控及变电站安全巡检等真实工业场景。本数据集以YOLOv8/v9为基准构建,提供万张实拍+合成图像、像素级Segmentation标注、分层划分与完备元数据,开箱即用,直击工业落地中数据清洗、格式转换与标注不一致等关键

weixin_30080745的博客 316

完美解决Python下matplotlib绘图中文乱码问题

当我们用matplotlib作图时中文乱码,往往会发现中文的文字变成了小方块,我在绘制决策树的时候就碰到了这个问题。将各种方式试了个遍,都不管用……最终发现是没有删除matplotlib下字体的缓存目录,即~/.cache/matplotlib 下面记录找到的比较好的方法,以便下次使用。 1、环境查看 a.系统版本查看 linuxidc@linuxidc:~/www.linuxidc.co...

人生苦短, 还不用Python? 1万+

银河麒麟V11 + KVM/QEMU + GT 710 GPU直通 Win10 完整操作流程文档

宿主机:RTX 5080专门运行ollama大模型服务,通过SSH/VNC远程管理Win10虚拟机:GT 710直通,物理键盘专属,通过物理显示器处理视频应用硬件隔离:两个系统完全隔离,互不干扰,性能最大化两种不同的直通方式直通方式 配置方法 设备在宿主机的状态 典型应用场景PCIe设备直通 vfio-pci.ids=10de:128b,10de:0e0f 设备完全从宿主机消失,被vfio-pci驱动接管 GPU、网卡、NVMe硬盘。

weixin_45285654的博客 1151

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

2302_78387246的博客 3592

python绘图中文乱码_【问题】Matplotlib绘图中文乱码问题

再用Matplotlib绘图时,图中出现中文会乱码,是因为没有配置中文字体。解决步骤如下2 安装SimHei字体(1)查看matplotlib 配置文件位置import matplotlibprint(matplotlib.matplotlib_fname())可以看出,作者的matplotlib在/root/anaconda3/lib/python3.6/site-packages/matplo...

weixin_39600837的博客 188

在Redroid容器中构建Frida RPC服务:自动化生成淘宝X-Sign签名参数

本文详细介绍了在Redroid容器中构建Frida RPC服务,实现自动化生成淘宝X-Sign等签名参数的完整方案。通过逆向分析定位关键方法,定制Redroid系统使Frida-Server常驻运行,并编写Frida脚本将签名方法暴露为RPC接口,最终封装为可远程调用的微服务,解决了签名生成的可移植性与工程化难题。

ice55的博客 643

Python Matplotlib 在线/离线解决绘图中文字体乱码问题

在Linux系统中使用Matplotlib绘图时,中文乱码问题通常是由于缺少中文字体或字体缓存未更新导致的。首先,可以通过设置plt.rcParams['font.sans-serif']来指定系统内的中文字体,如Noto Sans CJK SC或SimHei。如果系统内没有相关字体,可以通过fc-list查看可用字体,并将所需字体文件复制到系统的字体目录(如/usr/share/fonts)。在离线环境中,可以通过指定字体文件的路径来加载字体,但需注意字体文件的完整性。如果设置后仍出现乱码,可能是由于Ma

qq_42932667的博客 920

PCL 读取和保存点云

PCL (Point Cloud Library) 是一个用于处理 3D 点云数据的开源库。在处理点云数据时,常见的任务包括点云的读写和可视化。PCL 提供了强大的 IO 模块来读取和写入各种格式的点云文件,并且提供了可视化模块来对点云进行渲染和显示。点云的读写与显示是很多 3D 数据处理任务的基础步骤,通过这些步骤,可以对点云进行预处理、分析和操作。

纵马踏花向自由 1737

关于 SAP UI5 应用 url 中的特殊符号 # 的作用介绍

符号在 SAP UI5 的 URL 中不仅仅是一个分隔符,更是动态路由、状态管理和深链接的关键所在。通过合理使用,开发者可以实现高效、流畅的用户体验,同时保持系统的可维护性和扩展性。通过 SAP UI5 提供的灵活路由机制,企业应用可以轻松实现复杂导航需求,同时为用户提供直观的交互体验。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 407

Python杂谈 | (2)Python3中使用Matplotlib绘图时的中文乱码问题

目录   一、问题描述 二、中文乱码问题的解决 三、终极解决方案 一、问题描述 Python3中使用matplotlib绘图出现中文乱码问题,如下图所示: 可以发现再上例中,标题是用中文描述的,在图像中显示为乱码。 二、中文乱码问题的解决 出现这个问题的原因是Matplotlib中的默认字体不是中文,要想解决这个问题,需要设置一下中文字体: 对于Linux和Mac用户: ...

sdu_hao的博客 671

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

python matplotlib绘图中文乱码问题解决

matplotlib绘图出现中文乱码解决方法 步骤 1 找到项目下matplotlib的库文件包中的matplotlibrc文件,我的在D:\dataanalysis\venv\Lib\site-packages\matplotlib\mpl-data 2 将#font.sans-serif : DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sa

qq_42947060的博客 287

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python绘图设置标题出现乱码_Python 3下使用Matplotlib工具画图,中文显示乱码的问题解决(修改配置文件)-Go语言中文社区...

本文介绍两种解决该问题的方法,第一种需要每次在代码中加些东西,第二种是修改配置文件,可一劳永逸。第一种:以Kaggle中的Titanic问题为例:import matplotlib.pyplot as pltfig = plt.figure()fig.set(alpha=0.2) # 设定图表颜色alpha参数plt.subplot2grid((2,3),(0,0)) #...

weixin_30794755的博客 828

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python3用matplotlib绘图出现中文乱码的问题

python中的matplotlib仅支持Unicode编码,默认是不显示中文的,如果让其默认显示中文,方法如下: from pandas import Series,DataFrame import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] 字体的...

jx的博客 3097

python 中 matplotlib.pyplot 绘图中文乱码问题

matplotlib.pyplot绘图中文乱码问题

muyuxifeng的博客 831

Python 解决matplotlib绘图显示中文乱码或错误问题

编译环境:Win10+Aconada3.6 或Win10+Python2.7问题描述:在使用matplotlib绘图时,我的Label需要为中文,我写下如下代码:ax.plot(Dataset[4][1:],'r',marker='o',linewidth='3',label='电流')运行之后直接报错,通过在网上查询资料,修改代码如下:ax.plot(Dataset[4][1:],'r',mar...

u013112749的博客 2229

Python使用matplotlib绘图时出现的中文乱码问题

Python使用matplotlib绘图时出现的中文乱码问题

gqrblnp的博客 1333

解决Python matplotlib绘图画布上中文乱码问题

解决Python matplotlib绘图画布上中文乱码问题 问题描述: 当用matplotlib库画图时,画布上的中文乱码(成为一个个空白格子) 如下示: 解决: 找到matplotlibrc配置文件,一般在python的依赖包安装的位置,比如我的在:F:/python3.8.3/lib/site-packages/matplotlib/mpl-data/matplotlibrc 找到matplotlibrc配置文件中的#font.family: sans-serif这一行 在这一行的下面添加: f

wuxiemimei的博客 348

windows环境下,用python绘图库matplotlib绘图时中文乱码问题

1、下载中文字体(看自己爱好就行)下面这个举例: SimHei - Free Font Download​www.fontpalace.co 2、下载之后,打开即可安装,将字体安装进windows系统 3、找到你的matplotlib字体文件夹,例如:python3\Lib\site-packages\matplotlib\mpl-data\fonts,将SimHei.ttf拷贝到fonts...

weixin_34362790的博客 178
上一篇: Win10安装Python最详细教程
下一篇: Python即是解释型语言,也是编译型语言
一秋的编程笔记
博客等级 码龄4年 1588粉丝 319原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值