我对matplotlib确实很陌生,尽管我知道它可以非常强大。我一直在阅读许多教程和示例,要了解matplotlib的Figure和Axes是如何工作的,确实是一件麻烦事。我正在用附图说明我想理解的内容。
我知道如何创建以英寸为单位的特定大小的图形实例。但是,困扰我的是如何创建子图,然后在每个子图中创建具有相对坐标(bottom = 0,left = 0,top = 1,right = 1)的轴,如图所示。因此,例如,我想创建一个“父”绘图区域(例如(6in,10in))。然后,我要创建两个子图区域,每个子图区域的大小(3英寸,3英寸),顶部分别为1英寸,两个垂直子图区域之间为2英寸,底部为1英寸。然后,左侧留出1in的空间,写入时留出2in的空间。同时,我希望能够获得子图区域相对于主图区域的坐标。然后,在第一个子图区域内,我想创建2个轴实例,其中轴1相对于子图区域1(0.1,0.7,0.7,0.2)和轴2(0.1,0.2,0.7,0.5)具有坐标。ax1.plot()....
如果您可以提供示例代码来实现这一目标,那么我可以对其进行研究。非常感谢您的帮助!
一个subplot
和Axes
对象实际上是一样的事情。正如您在matplotlib中描述的那样,实际上并没有一个“子图”。您只需Axes
使用gridspec
即可创建三个对象,而无需将其放入“子图”中。
Axes
在您的图形中创建实例有几种不同的方法。
fig.add_axes
将Axes
在指定位置创建一个实例(您[left,bottom,width,height]
在图形坐标中给出它(即0,0
,左下角,1,1
右上角))。
fig.add_subplot
还将创建一个Axes
实例。在这种情况下,您不必给它要创建的矩形,而是给它想要的子图的行数和列数,然后给plot_number
,plot_number
从1开始的,从第一个行开始递增,最大行数为nrows * ncols
。
例如,要在2行2列的网格中创建左上角的轴,可以执行以下操作:
fig.add_subplot(2,2,1)
或速记
fig.add_subplot(221)
还有一些更加个性化的方式来创建Axes
为好,例如gridspec
和subplot2grid
允许轻松创建不同的形状和大小的次要情节的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句