matplotlib 删除gridspec子图之间的空间距

vlurs2pr  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(144)

我试图在matplotlib中创建一个图,第一列有三个子图,第二列有两个。
使用gridspec,我设法调整了它,但不知何故,在第一列和第二列的不同子图之间有很大的间距。理想情况下,它们应该填满整个子图区域。有什么建议或解释为什么会发生这种情况吗?
先谢谢你了!
到目前为止,我尝试的是:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(7, 7.5))
gs = gridspec.GridSpec(6, 2)

# Top left subplot
ax = fig.add_subplot(gs[0:1, 0])
ax.set_ylabel('YLabel0')
ax.set_xlabel('XLabel0')
# Center left subplot
ax = fig.add_subplot(gs[2:3, 0])
ax.set_ylabel('YLabel1')
ax.set_xlabel('XLabel1')
# Bottom left subplot
ax = fig.add_subplot(gs[4:5, 0])
ax.set_ylabel('YLabel2')
ax.set_xlabel('XLabel2')
# Top right subplot
ax = fig.add_subplot(gs[0:2, 1])
ax.set_ylabel('YLabel3')
ax.set_xlabel('XLabel3')
# Bottom right subplot
ax = fig.add_subplot(gs[3:5, 1])
ax.set_ylabel('YLabel4')
ax.set_xlabel('XLabel4')

plt.show()

这就是结果:

h6my8fg2

h6my8fg21#

您可以创建两个GridSpec示例,一个用于左列,一个用于右列。例如:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(7, 7.5))

# Left column has 3 rows
gs1 = plt.GridSpec(3, 2)

# Right column has 2 rows
gs2 = plt.GridSpec(2, 2)

# Create left column axes using gs1
ax11 = fig.add_subplot(gs1[0, 0])
ax12 = fig.add_subplot(gs1[1, 0])
ax13 = fig.add_subplot(gs1[2, 0])

# Create right column axes using gs2
ax21 = fig.add_subplot(gs2[0, 1])
ax22 = fig.add_subplot(gs2[1, 1])

plt.show()

相关问题