以鸢尾花数据集为例,如何利用subplot切分大图画子图?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文还是继续分析鸢尾花数据集,鸢尾花数据集有四个维度信息,分别是花萼长宽以及花瓣长宽。实际上从排列组合的角度上来说,有4*4=16种排列方式。那么,本文的需求就是:把这16种排列信息的散点图画在同一个大图上面。

苏南大叔的“程序如此灵动”博客,记录苏南大叔和计算机代码的经验文章。本文测试环境:win10
,python@3.11.0
,pandas@1.5.3
,numpy@1.24.2
,matplotlib@3.7.1
。
测试代码
在循环体外部就是已经知晓的散点图的画法代码的大部分了,可以参考:
循环体内部,实际上就是在不断的确定子图位置,以及标签信息的过程:

.subplot()
在前面的文章中,苏南大叔已经案例过基于鸢尾花数据集的散点图画法了。本文中的画子图的方式,就是plt.subplot()
,其它的代码基本一致。苏南大叔是这么理解.subplot()
的。
这个函数不决定子图第几个被画,只决定子图画在哪个位置。

灵魂QA
Q:谁在画?
A:plt
在画图,所有的子图都是一个对象plt
在画,每个子图都是同一个plt
画出来的。也就是说并不存在某个子图独自的plt
对象,这就是个出问题的伏笔啊。因为不好确定当前子图到底画完没有。
Q:子图被画的顺序
A:实际上是由两层循序x
和y
的顺序决定的。以行为单位,向下推进。或者以列为单位,向右推进。
Q:子图被画在哪里
A:子图位置实际上是被.subplot()
的第三个参数决定的,和被画的先后顺序无关,骨子里就决定了画在哪里。
Q:原点位置
A:大图的原点是左上角,小图的原点位置是左下角。
结束语
本文说的是plt.subplot()
画子图,还存在着一个plt.subplots()
画子图。两者有啥区别呢?且听后续文章分晓。


