使用
GridSpec,您可以创建任意维度的网格,用于子图布局。
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
gs = gridspec.GridSpec(4, 4)
ax1 = plt.subplot(gs[:2, :2])
ax1.plot(range(0,10), range(0,10))
ax2 = plt.subplot(gs[:2, 2:])
ax2.plot(range(0,10), range(0,10))
ax3 = plt.subplot(gs[2:4, 1:3])
ax3.plot(range(0,10), range(0,10))
plt.show()
这将创建一个4x4网格,每个子图占据2x2的子网格。这样可以正确地居中底部子图。
要使用与您问题中使用的相同的
for
循环方法,您可以执行以下操作:
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
gs = gridspec.GridSpec(4, 4)
m = 0
for i in range(0, 4, 2):
for j in range(0, 4, 2):
if m < 3:
ax = plt.subplot(gs[i:i+2, j:j+2])
ax.plot(range(0, 10), range(0, 10))
m+=1
else:
ax = plt.subplot(gs[i:i+2, 1:3])
ax.plot(range(0, 10), range(0, 10))
plt.show()
这两个代码片段的结果都是:
![Plots](https://istack.dev59.com/Wv9PE.webp)
for
循环结构。 - undefined