matplotlib中使用gridspec的3 x 2子图-删除空白?

ylamdve6  于 2023-03-03  发布在  其他
关注(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()

这就是结果

mlnl4t2r

mlnl4t2r1#

可以创建两个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()

相关问题