matplotlib绘图的核心原理讲解(超详细)
作者:Huang supreme
来源:https://blog.csdn.net/weixin_41261833/article/details/104299701
1、核心原理讲解
使用matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。
张三的画板
matplotlib绘图
2、matplotlib库的安装与导入
1)安装
pip install matplotlib
2)导入相关库
现在你不需要关注下面代码具体是什么意思,有一个主观印象即可。我将会在以后的文章中,给大家一一介绍你不懂的哪些参数。
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt# 排除警告信息
import warnings
warnings.filterwarnings("ignore")# 打印版本信息
display(np.__version__)
display(pd.__version__)
display(mpl.__version__)# matplotlib画图常见参数设置
mpl.rcParams["font.family"] = "SimHei" # 设置字体
mpl.rcParams["axes.unicode_minus"]=False # 用来正常显示负号
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签# 嵌入式显示图形
%matplotlib inline
结果如下:
3、创建figure(画布)的两种方式
1)绘制一个最简单的折线图
import matplotlib as mpl
import matplotlib.pyplot as pltx = [1,3,5,7]
y = [4,9,6,8]
plt.plot(x,y)
plt.show()
结果分析:
在前面的叙述中,我们已经说过,想要使用matplotlib绘图,必须先要创建一个figure(画布)对象,然后还要有axes(坐标系)。但是观察上述代码,我们并没有创建figure对象,那么怎么又可以画图呢?
对于上述疑问,接下来我们就要讲述创建figure(画布)的两种方式。
2)创建figure(画布)的两种方式
- 隐式创建
- 显示创建
① 隐式创建figure对象
当第一次执行plt.xxx()这句绘图代码时,系统会去判断是否已经有了figure对象,如果没有,系统会自动创建一个figure对象,并且在这个figure之上,自动创建一个axes坐标系(注意:默认创建一个figure对象,一个axes坐标系)。
也就是说,如果我们不设置figure对象,那么一个figure对象上,只能有一个axes坐标系,即我们只能绘制一个图形。
② 隐式创建figure对象存在的问题
优势
:如果只是绘制一个小图形,那么直接使用plt.xxx()的方式,会自动帮我们创建一个figure对象和一个axes坐标系,这个图形最终就是绘制在这个axes坐标系之上的。
劣势
:如果我们想要在一个figure对象上,绘制多个图形,那么我们就必须拿到每个axes对象,然后调用每个位置上的axes对象,就可以在每个对应位置的坐标系上,进行绘图,如下图所示。注意:如果figure对象是被默认创建的,那么我们根本拿不到axes对象。因此,需要我们显示创建figure对象。
③ 显示创建figure对象:以后的文章会详细讲述布局设置
# 手动创建一个figure对象
figure = plt.figure()
# 获取每个位置的axes对象
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)
如图所示:
举例说明:
figure = plt.figure()
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)axes1.plot([1,3,5,7],[4,9,6,8])
axes2.plot([1,2,4,5],[8,4,6,2])
figure.show()
结果如下:
4、完整的绘图步骤
① 导库
import matplotlib as mpl
import matplotlib.pyplot as plt
② 创建figure画布对象
如果绘制一个简单的小图形,我们可以不设置figure对象,使用默认创建的figure对象,
当然我们也可以显示创建figure对象。
如果一张figure画布上,需要绘制多个图形。那么就必须显示的创建figure对象,然后
得到每个位置上的axes对象,进行对应位置上的图形绘制。
③ 根据figure对象进行布局设置
1*1
1*2
2*1
2*2
...
④ 获取对应位置的axes坐标系对象
figure = plt.figure()
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,1)
⑤ 调用axes对象,进行对应位置的图形绘制
这一步,是我们传入数据,进行绘图的一步。对于图形的一些细节设置,都可以在这一步进行。
⑥ 显示图形
plt.show()或figure.show()如果在pycharm中绘图的话,必须要加这句代码,才能显示。如果在notebook中进行绘图,
可以不用加这句代码,而是自动显示。
5、绘图技巧(细节设置)
* figure 画布
* axes 坐标系,一个画布上可以有多个坐标系
* axis 坐标轴,一个坐标系中可以有多个坐标轴,一般都是二维平面坐标系,或者三维立体坐标系
* title 标题
* legend 图例
* grid 背景网格
* tick 刻度
* axis label 坐标轴名称
* tick label 刻度名称* major tick label 主刻度标签* minor tick label 副刻度标签
* line 线
* style 线条样式
* marker 点标记
* font 字体相关
通过对matplotlib绘图的原理,有所了解之后,我们需要学习的就是常见的matplotlib绘图技巧,常见的绘图技巧如上所示,这些绘图技巧都能够很好的帮助我们画出更美观、更直观的图形。下一节,我将会讲述matplotlib绘图技巧(千万不要错过)。
今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言
和点赞
是我持续更新的动力哦,感谢大家!
1、点个赞,让更多的人看到这篇文章,顺便激励下我,嘻嘻。
2、关注我的原创微信公众号「杰哥的IT之旅」
,专注于IT技术干货文章,以及不定期的分享学习资料,实用工具,面试经验
等,当然了还有内推机会
哦,期待你的关注!
matplotlib绘图的核心原理讲解(超详细)相关推荐
- 用python画画的原理_matplotlib绘图的核心原理讲解
作者:朱小五 来自:凹凸数据(ID:alltodata) matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包. 相信大家都用过它来数据可视化,之前我还分享过25 ...
- 条件随机场(CRF)极简原理与超详细代码解析
条件随机场(CRF)极简原理与超详细代码解析 1. 原理 1.1 从名称说起 1.2 优化的目标 1.3 如何计算 2. 代码 2.1 基本结构 2.2 模型初始化 2.3 BERT提取的特征如何输入 ...
- 手把手讲解超详细python入门游戏项目‘打外星飞船’(二)
手把手讲解超详细python入门游戏项目'打外星飞船'(二) 上次我们在(一)中创建了游戏的背景,现在我们这里将要实现用键盘控制飞船的移动.射击子弹,但是在此之前我们还有一个非常重要的部分–重构. 重 ...
- 手把手讲解超详细python入门游戏项目‘打外星飞船’(四)
手把手讲解超详细python入门游戏项目'打外星飞船'(四) 在经过创立屏幕.飞船移动和设置子弹,我们这里开始设置外形人的创建和移动.我们这里主要的任务是:创建一众外星人让它们充满屏幕,让他们向下和两 ...
- 手把手讲解超详细python入门游戏项目‘打外星飞船’(五)
手把手讲解超详细python入门游戏项目'打外星飞船'(五) 这是最后一个项目了,前面我们讲了整个游戏页面的控制.飞船.子弹.外星人的创建,这里我们讨论一下子弹射杀外星人和整个游戏的结束,我们这里的文 ...
- 手把手讲解超详细python入门游戏项目‘打外星飞船’(三)
手把手讲解超详细python入门游戏项目'打外星飞船'(三) 第三部分我们讲解一下飞船需要射出子弹,那么子弹的部分是怎么操作呢?接下来我直接把项目的四个文件展示出来,以注释的形式在旁边讲解.因为有很多 ...
- 手把手讲解超详细python入门游戏项目‘打外星飞船’(一)
手讲解超详细python入门游戏项目'打外星飞船'手把(一) 由于内容比较多,这里会分为五篇文章来讲解,从页面的创建.飞船控制.射击.外星人创建.射杀外星人五片来展开. 做一个窗口和设置响应用户 im ...
- 【数据可视化】Matplotlib 入门到精通学习笔记(超详细)
数据可视化是什么 如果将文本数据与图表数据相比较,人类的思维模式更适合于理解后者,原因在于图表数据更加直观且形象化,它对于人类视觉的冲击更强,这种使用图表来表示数据的方法被叫做数据可视化. 当使用图表 ...
- JAXB常用注解讲解(超详细)
简介: JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例 ...
最新文章
- PIG 中COGROUP中的空值验证
- uboot---linux
- matlab计算函数区域面积,matlab 中函数regionprops 求解区域面积的原理
- php 解析 saml协议,解出SAMLRequest的代码示例
- python分箱分类代码_Python实现变量分箱及应用
- KDD 2019论文解读:异构信息网络上的对抗生成学习
- oracle成本模块培训,Oracle App 培训笔记(5) -- 成本管理模块表结构整理 续
- 修改Myecclipse servlet/jsp的默认模板
- hdu 1520(树形dp)
- PascalVOC Dataset下载链接
- 从遥感影像到土地利用转移矩阵
- CDN应用进阶 | 大文件下载及视频点播的CDN加速实践
- selenium-登录腾讯防水墙案例
- 【错误率、精度、查准率、查全率和F1度量】详细介绍
- 计算机的网关地址是什么,什么是网关 网关地址是什么
- 收盘价对数收益率matlab,R语言怎么把股票日收盘价转换成对数收益率
- python实现问卷网的自动填写详解
- 芯片设计进阶之路——Reset深入理解
- 为什么在POS非常火爆的时候代还系统还能抢下市场呢?
- 一帮一 (15 分)
热门文章
- 手机照片积压过万,如何用便捷的方式去整理和再度呈现?
- 当当和亚马逊进驻天猫,那京东还会远吗?
- oracle sql 格式化日期,怎么在 SQL Server中 将日期格式化
- numpy.pad使用详解
- 【Grasshopper进阶】反射?什么反射?用反射屏蔽掉C#Script电池的运行时长
- 浅谈逻辑与 逻辑或|| 运算
- 基于javaWeb培训机构教务管理系统
- 这些是在线上最好的免费人工智能教育资源
- 使用AccessibilityService带你自动安装软件以及自动添加微信好友
- 全新型号 华为FusionServer Pro 5288 V6机架服务器发布