调整子图之间的空间

时间:2017-12-28 22:04:20

标签: python matplotlib

我正在一个图中绘制4个子图,我想要均匀地调整其间的空间。

我试过grid.GridSpec.update。

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

plt.figure(figsize=(8,8))
gs2 = gridspec.GridSpec(2, 2)
gs2.update(wspace=0.01, hspace=0.01)

ax1 = plt.subplot(gs2[0,0],aspect='equal')
ax1.imshow(img)
ax1.axis('off')

ax2 = plt.subplot(gs2[0,1],aspect='equal')
ax2.imshow(img)
ax2.axis('off')

ax3 = plt.subplot(gs2[1,0],aspect='equal')
ax3.imshow(img)
ax3.axis('off')

ax4 = plt.subplot(gs2[1,1],aspect='equal')
ax4.imshow(img)
ax4.axis('off')

2幅图之间的垂直空间太大,无论我如何调整gs2.update(hspace= ),它都不会改变,如下所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

可能是你的aspect='equal'造成了问题。

试试这个

import numpy as np
%matplotlib inline # if in a jupyter notebook like environment

img = np.ones((30, 30))

fig, axes = plt.subplots(2, 2, sharex=True, sharey=True, figsize=(8,8),
                         gridspec_kw={'wspace': 0.01, 'hspace': 0.01})
axes = axes.ravel()

for ax in axes:
    # aspect : ['auto' | 'equal' | scalar], optional, default: None
    ax.imshow(img, aspect='auto')
    ax.axis('off')

enter image description here