Python 如何在matplotlib中创建具有不同wspace的子地块?

Python 如何在matplotlib中创建具有不同wspace的子地块?,python,matplotlib,Python,Matplotlib,我们如何使用不同的wspace创建子地块。例如,我正在绘制5个图形,第一行2个,第二行3个。我希望第一行有不同的wspace,最后3行有wspace=0。我知道gridspec是可行的,但我无法理解,所以子绘图中是否有其他方法可以做到这一点,或者有人可以解释gridspec的工作原理、语法以及参数如何调整大小并将其放置在其他绘图的特定位置 gs1 = gridspec.GridSpec(3, 3) gs1.update(left=0.05, right=0.48, wspace=0.05) ax

我们如何使用不同的wspace创建子地块。例如,我正在绘制5个图形,第一行2个,第二行3个。我希望第一行有不同的wspace,最后3行有wspace=0。我知道gridspec是可行的,但我无法理解,所以子绘图中是否有其他方法可以做到这一点,或者有人可以解释gridspec的工作原理、语法以及参数如何调整大小并将其放置在其他绘图的特定位置

gs1 = gridspec.GridSpec(3, 3)
gs1.update(left=0.05, right=0.48, wspace=0.05)
ax1 = plt.subplot(gs1[:-1, :])
ax2 = plt.subplot(gs1[-1, :-1])
ax3 = plt.subplot(gs1[-1, -1])

gs2 = gridspec.GridSpec(3, 3)
gs2.update(left=0.55, right=0.98, hspace=0.05)
ax4 = plt.subplot(gs2[:, :-1])
ax5 = plt.subplot(gs2[:-1, -1])
ax6 = plt.subplot(gs2[-1, -1])
我不明白怎么做

(gs1[:-1, :])
(gs1[-1, :-1])
(gs1[-1, -1])

工作。谢谢。

您有
gridspec.gridspec(3,3)
这意味着3行3列,总共9个子批次,索引
gs1[i,j],i-a行,j-a列

看看这个例子:

import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

print A[:-1, :] # get first and second rows (that is -1 means does not include last elements (last row) 
print A[-1, :-1] # from last row get all columns except last
print A[-1, -1] # get last element of array A (that is A[2][2])
输出:

[[1 2 3]
 [4 5 6]]
[7 8]
9
阅读python中的数组切片: