Matplotlib 的 Figure and Axes 解释
Matplotlib's Figure and Axes explanation
我对 matplotlib 真的很陌生,尽管我知道它可能非常强大。
我一直在阅读大量教程和示例,要理解 matplotlib 的图形和轴是如何工作的真的很麻烦。我正在用附图说明我想理解的内容。
我知道如何创建以英寸为单位的特定尺寸的图形实例。然而,令我困扰的是如何在每个子图中创建子图,然后使用相对坐标(底部=0、左侧=0、顶部=1、右侧=1)创建轴,如图所示。
因此,例如我想创建一个 "parent" 绘图区域(例如(6in,10in))。然后,我想创建两个子图区域,每个子图区域的大小为 (3in,3in),顶部为 1in space,两个垂直子图区域之间为 2in space,底部为 1in。然后,左边的 1in space 和写入的 2in space。同时,我希望能够获得子图区域相对于主图区域的坐标。
然后,在第一个子图区域内,我想创建 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 中描述的那样,实际上并没有 "subplot" 。您可以使用 gridspec
创建三个 Axes
对象,而无需将它们放入 "subplots".
有几种不同的方法可以在您的图中创建 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)
或shorthand
fig.add_subplot(221)
还有一些更可定制的方法来创建 Axes
,例如 gridspec
and subplot2grid
可以轻松创建许多不同形状和大小的子图。
我对 matplotlib 真的很陌生,尽管我知道它可能非常强大。
我一直在阅读大量教程和示例,要理解 matplotlib 的图形和轴是如何工作的真的很麻烦。我正在用附图说明我想理解的内容。
我知道如何创建以英寸为单位的特定尺寸的图形实例。然而,令我困扰的是如何在每个子图中创建子图,然后使用相对坐标(底部=0、左侧=0、顶部=1、右侧=1)创建轴,如图所示。
因此,例如我想创建一个 "parent" 绘图区域(例如(6in,10in))。然后,我想创建两个子图区域,每个子图区域的大小为 (3in,3in),顶部为 1in space,两个垂直子图区域之间为 2in space,底部为 1in。然后,左边的 1in space 和写入的 2in space。同时,我希望能够获得子图区域相对于主图区域的坐标。
然后,在第一个子图区域内,我想创建 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 中描述的那样,实际上并没有 "subplot" 。您可以使用 gridspec
创建三个 Axes
对象,而无需将它们放入 "subplots".
有几种不同的方法可以在您的图中创建 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)
或shorthand
fig.add_subplot(221)
还有一些更可定制的方法来创建 Axes
,例如 gridspec
and subplot2grid
可以轻松创建许多不同形状和大小的子图。