Как убрать пробел между подсюжетами в matplotlib.pyplot?

Я работаю над проектом, в котором мне нужно собрать сетку из 10 строк и 3 столбцов. Несмотря на то, что мне удавалось составлять сюжеты и организовывать сюжеты, я не смог создать хороший сюжет без пробелов, как этот ниже, издокументация gridspec..

Я попробовал следующие посты, но все еще не смог полностью удалить пробел, как в примере изображения. Может кто-нибудь дать мне несколько советов? Спасибо!

Матплотлиб разных размеров подзаговоровкак убрать «пустое» пространство между участками?

Вот мое изображение:

Ниже мой код.Полный скрипт здесь на GitHub, Примечание: images_2 и images_fool оба являются массивами сглаженных изображений с формой (1032, 10), в то время как delta является массивом изображений формы (28, 28).

def plot_im(array=None, ind=0):
    """A function to plot the image given a images matrix, type of the matrix: \
    either original or fool, and the order of images in the matrix"""
    img_reshaped = array[ind, :].reshape((28, 28))
    imgplot = plt.imshow(img_reshaped)

# Output as a grid of 10 rows and 3 cols with first column being original, second being
# delta and third column being adversaril
nrow = 10
ncol = 3
n = 0

from matplotlib import gridspec
fig = plt.figure(figsize=(30, 30)) 
gs = gridspec.GridSpec(nrow, ncol, width_ratios=[1, 1, 1]) 

for row in range(nrow):
    for col in range(ncol):
        plt.subplot(gs[n])
        if col == 0:
            #plt.subplot(nrow, ncol, n)
            plot_im(array=images_2, ind=row)
        elif col == 1:
            #plt.subplot(nrow, ncol, n)
            plt.imshow(w_delta)
        else:
            #plt.subplot(nrow, ncol, n)
            plot_im(array=images_fool, ind=row)
        n += 1

plt.tight_layout()
#plt.show()
plt.savefig('grid_figure.pdf')

Ответы на вопрос(2)

Ваш ответ на вопрос