gpt4 book ai didi

python - 如何通过数字指定gridspec位置?

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:00 25 4
gpt4 key购买 nike

我阅读了 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])

enter image description here

我知道 gridspec.GridSpec(3, 3) 将给出 3*3 布局,但这对于 gs[0, :] 意味着什么 gs[1, :-1] gs[1:, -1] gs[-1, 0] gs[-1, - 2]?我在网上查找但没有找到详细的解释,我也尝试更改索引但没有找到规律的模式。谁能给我一些解释或给我一个有关此问题的链接?

最佳答案

使用gs = gridspec.GridSpec(3, 3) ,您基本上已经为您的绘图创建了一个 3 x 3“网格”。从那里,您可以使用 gs[...,...]通过每个子图在 3x3 网格中填充的行数和列数来指定每个子图的位置和大小。更详细地查看:

gs[1, :-1]指定子图在网格空间上的位置。例如ax2 = plt.subplot(gs[1, :-1])说:把轴称为 ax2第一行(由 [1,... 表示)(请记住,在 python 中,索引为零,因此这本质上意味着“从顶部向下的第二行”),从第 0 行开始拉伸(stretch)列直到最后一列(用 ...,:-1] 表示)。因为我们的网格空间有 3 列宽,这意味着它将拉伸(stretch) 2 列。

也许最好通过在示例中注释每个轴来显示这一点:

import matplotlib.pyplot as plt
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])

ax1.annotate('ax1, gs[0,:] \ni.e. row 0, all columns',xy=(0.5,0.5),color='blue', ha='center')
ax2.annotate('ax2, gs[1, :-1]\ni.e. row 1, all columns except last', xy=(0.5,0.5),color='red', ha='center')
ax3.annotate('ax3, gs[1:, -1]\ni.e. row 1 until last row,\n last column', xy=(0.5,0.5),color='green', ha='center')
ax4.annotate('ax4, gs[-1, 0]\ni.e. last row, \n0th column', xy=(0.5,0.5),color='purple', ha='center')
ax5.annotate('ax5, gs[-1, -2]\ni.e. last row, \n2nd to last column', xy=(0.5,0.5), ha='center')

plt.show()

enter image description here

关于python - 如何通过数字指定gridspec位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49323348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com