如何删除地块之间的陌生空间?

时间:2019-11-12 23:59:37

标签: python matplotlib jupyter

我正在尝试在jupyter输出中绘制2行4张图片,这是我的代码

for name in names_pred:

    onlyfiles2 = [ f for f in listdir(os.path.join(TOP_DATA,names_supcetcs)) ]


    posibles = plt.figure(figsize = (20,20))

    for i in range(1,9):
        plt.subplot(2,4,i)        
        plt.subplots_adjust(wspace=None)
        img = mpimg.imread(TOP_DATA+names_supcetcs+ '/'+ onlyfiles2[i-1])
        plt.imshow(img)
    plt.show()

并且输出是下一张图片的迭代,但是当i = 2,3,4 ...开始时,没有跳过的空间

enter image description here

我如何删除该空间?我已经尝试过

Improve subplot size/spacing with many subplots in matplotlib

但是最糟糕的是,一些图片没有显示

2 个答案:

答案 0 :(得分:0)

您是否尝试在代码中加入plt.tight_layout()

写一个简单的示例,因为我无权访问您正在使用的数据,但足以让您滚动。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()

ax = {i: fig.add_subplot(2,4,i) for i in range(1,9)}

x = np.linspace(1,10,100)
plots = [ax[i].plot(x,i*x) for i in range(1,9)]

plt.tight_layout()

plt.show()

答案 1 :(得分:0)

感谢您的帮助,我实际上在嵌套的for循环中使用if来管理它,这不是最理想的方法,但它可以工作

 for i in range(1,9):
        if i == 1:
            fig.add_subplot(2,4,i)
            plt.imshow(img0)

        else:    

            fig.add_subplot(2,4,i)
            img = mpimg.imread(TOP_DATA+names_supcetcs+ '/'+ onlyfiles2[i-1])
            plt.imshow(img)