我们如何创建具有不同wspace的子图。例如,我正在绘制5个图,第一行为2,第二行为3。我希望第一行有不同的wspace,最后3行有wspace = 0.我知道有可能使用gridspec但是我无法理解它,所以在subplot中有没有其他方法可以做到这一点或者有人可以解释如何使用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])
的工作原理。谢谢。
答案 0 :(得分:0)
你有gridspec.GridSpec(3, 3)
这意味着3行3列,总共9个子图,索引为gs1[i,j], i - a row, j - a col
。
看一下例子:
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中的数组切片:http://structure.usc.edu/numarray/node26.html