相关疑难解决方法(0)

如何将gridspec与plt.subplots()结合使用以消除子图行之间的空间

我试图在子图中绘制多个图像,并消除子图中的空间(水平和垂直)或控制它。我尝试使用“ 如何使用GridSpec ...”中的建议。我在这里也尝试过,但是他们没有使用subplots(): 我的代码中,我能够消除水平空间,但不能消除水平空间,而不能消除垂直空间。请不要将其标记为重复项,因为我已经尝试了其他帖子,而他们没有按照我的意愿去做。我的代码如下所示。也许在gridspec_kw词典中需要另一个关键字参数?我想为此使用plt.subplots()而不是plt.subplot()。万一重要,图像不是正方形,而是矩形。我也尝试f.tight_layout(h_pad=0,w_pad=0)在plt.show()之前添加,但是它没有改变任何内容。

def plot_image_array_with_angles(img_array,correct_angles,predict_angles,
                              fontsize=10,figsize=(8,8)):
'''
Imports:
    import matplotlib.gridspec as gridspec
    import numpy as np
    import matplotlib.pyplot as plt
'''
num_images = len(img_array)
grid = int(np.sqrt(num_images))  # will only show all images if square
#f, axarr = plt.subplots(grid,grid,figsize=figsize)
f, axarr = plt.subplots(grid,grid,figsize=figsize,
                      gridspec_kw={'wspace':0,'hspace':0})
im = 0
for row in range(grid):
    for col in range(grid):
        axarr[row,col].imshow(img_array[im])
        title = 'cor = ' + str(correct_angles[im]) + '  pred = ' + str(predict_angles[im])
        axarr[row,col].set_title(title,fontsize=fontsize)
        axarr[row,col].axis('off')  # turns off …
Run Code Online (Sandbox Code Playgroud)

matplotlib python-3.x

2
推荐指数
1
解决办法
1156
查看次数

标签 统计

matplotlib ×1

python-3.x ×1