当前位置:网站首页>matplotlib绘图的核心原理讲解(超详细)
matplotlib绘图的核心原理讲解(超详细)
2022-08-02 21:23:00 【51CTO】
1、核心原理讲解
使用matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。
张三的画板
matplotlib绘图
2、matplotlib库的安装与导入
1)安装
2)导入相关库
现在你不需要关注下面代码具体是什么意思,有一个主观印象即可。我将会在以后的文章中,给大家一一介绍你不懂的哪些参数。
结果如下:
3、创建figure(画布)的两种方式
1)绘制一个最简单的折线图
结果如下:
结果分析:
在前面的叙述中,我们已经说过,想要使用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对象:以后的文章会详细讲述布局设置
如图所示:
举例说明:
结果如下:
4、完整的绘图步骤
① 导库
② 创建figure画布对象
③ 根据figure对象进行布局设置
④ 获取对应位置的axes坐标系对象
⑤ 调用axes对象,进行对应位置的图形绘制
⑥ 显示图形
5、绘图技巧(细节设置)
通过对matplotlib绘图的原理,有所了解之后,我们需要学习的就是常见的matplotlib绘图技巧,常见的绘图技巧如上所示,这些绘图技巧都能够很好的帮助我们画出更美观、更直观的图形。下一节,我将会讲述matplotlib绘图技巧(千万不要错过)。
边栏推荐
- 面试了个985毕业的,回答“性能调优”题时表情令我毕生难忘
- Ansible安装与配置
- 快速构建电脑软件系统 、超好用经典的网页推荐汇总
- 成功解决TypeError: can‘t multiply sequence by non-int of type ‘float‘
- Ansible installation and configuration
- wallys/new product/WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz MT7915 MT7975
- 快速学会ansible的安装
- y85.第四章 Prometheus大厂监控体系及实战 -- prometheus告警机制进阶、pushgateway和prometheus存储(十六)
- 用户之声 | GBASE南大通用实训有感
- # 医院管理系统完整项目代码以及数据库建表语句分享
猜你喜欢
饥荒联机版Mod开发——制作简单的物品(三)
Win10怎么开启自带的游戏录屏功能?
圆锥折射作为偏振计量工具的模拟
命令行启动常见问题及解决方案
What is the core business model of the "advertising e-commerce" that has recently become popular in the circle of friends, and is the advertising revenue really reliable?
Add and delete all these years, finally planted in MySQL architecture design!
Interviewer: can you talk about optimistic locking and pessimistic locks
SSM integration steps (emphasis)
【3D视觉】深度摄像头与3D重建
四、字符常量 & 字符串
随机推荐
字节内部技术图谱 惊艳级实用
golang 刷leetcode:从栈中取出 K 个硬币的最大面值和
iptables、firewalld的使用
华为设备配置BFD多跳检测
I interviewed a 985 graduate, and I will never forget the expression when answering the "performance tuning" question
如何理解 swing 是非线程安全 (原创)
js: 实现一个cached缓存函数计算结果
IP Protocol (Internet Protocol)
Flink优化的方方面面
面试官:可以谈谈乐观锁和悲观锁吗
[C题目]力扣138. 复制带随机指针的链表
sre成长之路
golang刷leetcode: 卖木头块
命令行启动常见问题及解决方案
面试了个985毕业的,回答“性能调优”题时表情令我毕生难忘
无线振弦采集仪远程修改参数的方式
Zabbix 5.0 监控教程(二)
SRv6网络演进面临的挑战
【3D视觉】realsense D435三维重建
我用这一招让团队的开发效率提升了 100%!