Matplotlib';s图形和轴说明

Matplotlib';s图形和轴说明,matplotlib,figure,axes,Matplotlib,Figure,Axes,我对matplotlib非常陌生,尽管我知道它可能非常强大。 我已经阅读了大量教程和示例,要理解matplotlib的图形和轴是如何工作的,真是一件麻烦事。我正在用附图说明我试图理解的内容 我知道如何创建以英寸为单位的特定大小的地物实例。然而,困扰我的是如何创建子图,然后在每个子图中创建轴,并使用相对坐标(底部=0,左侧=0,顶部=1,右侧=1),如图所示。 例如,我想创建一个“父”绘图区域(比如(6in,10in))。然后,我想创建两个子地块区域,每个区域的大小为(3in,3in),距离顶部1

我对matplotlib非常陌生,尽管我知道它可能非常强大。 我已经阅读了大量教程和示例,要理解matplotlib的图形和轴是如何工作的,真是一件麻烦事。我正在用附图说明我试图理解的内容

我知道如何创建以英寸为单位的特定大小的地物实例。然而,困扰我的是如何创建子图,然后在每个子图中创建轴,并使用相对坐标(底部=0,左侧=0,顶部=1,右侧=1),如图所示。 例如,我想创建一个“父”绘图区域(比如(6in,10in))。然后,我想创建两个子地块区域,每个区域的大小为(3in,3in),距离顶部1in,两个垂直子地块区域之间的空间为2in,距离底部1in。然后,在左侧1英寸空间,在写入端2英寸空间。同时,我希望能够得到子地块区域相对于主地块区域的坐标。 然后,在第一个子地块区域内,我想创建两个轴实例,轴1具有关于子地块区域1(0.1,0.7,0.7,0.2)和轴2(0.1,0.2,0.7,0.5)的坐标。当然,我希望能够在这些轴上绘图,例如,
ax1.plot()…

如果您可以提供一个示例代码来实现这一点,那么我可以研究它。
非常感谢您的帮助

a
子地块
和a
对象实际上是相同的东西。在matplotlib中并没有您所描述的“子地块”。您可以使用
gridspec
创建三个
对象,而无需将它们放入“子地块”

有几种不同的方法可以在图形中创建
实例

将在给定的位置创建一个
实例(您在地物坐标中为其指定
[左、下、宽、高]
(即
0,0
为左下,
1,1
为右上)

还将创建一个
Axes
实例。在这种情况下,您不给它一个要在其中创建的矩形,而是给它您想要的子批次的行数和列数,然后给它
plot\u number
,其中
plot\u number
从1开始,首先跨行递增,最大值为
nrows*ncols

例如,要在两行两列的栅格中创建左上角的轴,可以执行以下操作:

fig.add_subplot(2,2,1)
还是速记

fig.add_subplot(221)

还有一些更可定制的方法来创建轴,例如,允许轻松创建许多不同形状和大小的子地块。

子地块和轴对象实际上是一样的。实际上没有“子地块”正如您在matplotlib中所描述的那样。您只需使用
gridspec
创建三个
对象,而无需将它们放入“子地块”那么,为什么matplotlib有两个单独的类,当它们是相同的东西时,
Axes
subplot
fig.add\u subplot
返回一个
Axes
实例。
subplot
不是一个类,它是一个返回轴的函数。嗨@tom,那么
fig.add\u subplot
之间的区别是什么de>fig.add_axes?注释太多了,所以我添加了一个带有一些细节的答案@tom,非常感谢。您的帮助确实起到了作用,因为我无法从matplotlib文档中理解所有这些。我很感激!@tom假设您生成了多个轴,希望添加到figure instanc中e、 有什么方法可以做到这一点吗?@MPath我想这取决于你是如何创建它们的,等等。最好是在一个新问题中问这个问题,而不是我尝试在对另一个问题的评论中解释