我阅读了Customizing Location of Subplot Using GridSpec中的指令,并尝试了以下代码,得到了绘图布局:
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(3, 3)
ax1 = plt.subplot(gs[0, :])
ax2 = plt.subplot(gs[1, :-1])
ax3 = plt.subplot(gs[1:, -1])
ax4 = plt.subplot(gs[-1, 0])
ax5 = plt.subplot(gs[-1, -2])
我知道gridspec.GridSpec(3, 3)
会给予一个3*3的布局,但这对gs[0, :]
gs[1, :-1]
gs[1:, -1]
gs[-1, 0]
gs[-1, -2]
意味着什么?我在网上查了一下,但没有找到详细的扩展,我也试图改变索引,但没有找到一个规律。谁能给我一些解释或给我一个关于这个的链接?
1条答案
按热度按时间dwthyt8l1#
使用
gs = gridspec.GridSpec(3, 3)
,你已经为你的图创建了一个3 × 3的“网格”。从那里,你可以使用gs[...,...]
指定每个子图的位置和大小,通过每个子图填充在3x3网格中的行数和列数。查看更多细节:gs[1, :-1]
指定子图在网格空间上的 * 位置 *。例如ax2 = plt.subplot(gs[1, :-1])
说:将ax2
放在第一行(用[1,...
表示)(记住,在python中,索引为零,所以这实际上意味着“从顶部向下的第二行”),从第0列 * 开始拉伸直到 * 最后一列(用...,:-1]
表示)。因为我们的网格空间是3列宽,这意味着它将拉伸2列。也许最好通过注解示例中的每个轴来说明这一点: