如何在jupyter笔记本中逐行绘制4000张图像?

时间:2018-09-05 15:19:31

标签: python matplotlib jupyter-notebook

我想逐行绘制4000张图像作为子图或使用另一种方法。当我使用子图方法时,显示的图像尺寸以某种方式减小。我想解决这个问题,并了解是什么原因导致绘图大小减小,或者学习其他绘制图像的方法。

for ix in range(0, len(preds_train_t)):
    fig = plt.figure()
    #ix = random.randint(0, len(preds_train_t))
    fig.add_subplot(ix+1, 3, 1) 
    plt.imshow(np.dstack((X_train[ix],X_train[ix],X_train[ix])))   

    tmp = np.squeeze(Y_train[ix]).astype(np.float32)
    fig.add_subplot(ix+1, 3, 2) 
    plt.imshow(np.dstack((tmp,tmp,tmp)))

    tmp = np.squeeze(preds_train_t[ix]).astype(np.float32)
    fig.add_subplot(ix+1, 3, 3) 
    plt.imshow(np.dstack((tmp,tmp,tmp)))
    plt.show()

Jupyter笔记本的结果:

enter image description here

2 个答案:

答案 0 :(得分:0)

for ix in range(0, len(preds_train_t)):
        fig = plt.figure()
        #ix = random.randint(0, len(preds_train_t))
        fig.add_subplot(1, 3, 1) 
        plt.imshow(np.dstack((X_train[ix],X_train[ix],X_train[ix])))   

        tmp = np.squeeze(Y_train[ix]).astype(np.float32)
        fig.add_subplot(1, 3, 2) 
        plt.imshow(np.dstack((tmp,tmp,tmp)))

        tmp = np.squeeze(preds_train_t[ix]).astype(np.float32)
        fig.add_subplot(1, 3, 3) 
        plt.imshow(np.dstack((tmp,tmp,tmp)))
        plt.show()

我已将“ ix + 1”更改为“ 1”,并且问题已解决,因为循环导致jupyter笔记本中出现新行以进行绘图。

答案 1 :(得分:0)

如果您正在寻找更快,更高效的笔记本中图像绘制方式,则应考虑使用ipyplot

import ipyplot

ipyplot.plot_images(X_train, img_width=150)

enter image description here