matplotlib绘图——再谈axes和pyplot方法

《matplotlib绘图——再谈axes和pyplot方法》

简介

在matplotlib绘图过程中,经常会出现axes绘图pyplot绘图这两种方法,但是如果不搞清楚它们的区别,往往会得不到你想要的图形。所谓axes绘图是指调用axes对象(坐标轴对象)去完成绘图任务,而pyplot绘图就是常规的简单绘图方式。在绘制多个子图的时候,往往需要指定在哪个子图进行绘图,axes和pyplot的使用跟你选择的绘制子图的方法有关

subplots方法

subplots方法可以一次性绘制几个子图,代码如下:

通过subplots方法得到画布fig和一个包含所有字坐标轴的数组axes。使用切片方法能够获得里面的每个子坐标轴。接下来调用相应坐标轴的plot方法,在ax2坐标轴绘制了直线图;如果直接使用 plt.scatter ,我们会发现在最后一个子图中绘制了散点图,这就是区别,plt方法默认是在最后一个建立的坐标轴上绘图。得到如下图形:

《matplotlib绘图——再谈axes和pyplot方法》

即使是将该代码放到前面:

绘制出来的图片还是跟上面一样。那能不能使用plt在指定子坐标轴下绘图呢?当然是可以的,这时就需要使用subplot方法,以代码块的方式书写。

subplot方法

通过subplot方法逐一添加子坐标轴并完成绘图:

这种添加子坐标轴的方式,就跟plt方法的顺序有关系了,默认plt在对应的子坐标轴下完成绘图。得到如下图形:

《matplotlib绘图——再谈axes和pyplot方法》

ax参数

在plt的很多方法中都有 ax 参数,它可以用来指定在某个具体的坐标轴上绘图。比如:

总结

本文再次介绍了axes和pyplot方法的使用,具体跟调用的绘图方法有关:subplots方法最好使用axes方法绘图,它是先搭框架再绘图;而subplot方法则是通过代码块一步步绘图,逻辑非常清晰,并且在代码块中可以使用plt方法

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

16 + 16 =