Участки не выровнены - PullRequest
       2

Участки не выровнены

0 голосов
/ 23 октября 2019

Я надеялся получить помощь в выравнивании своих участков. Я испробовал несколько комбинаций, но они самые близкие, которые я получаю. Мне просто нужно, чтобы фигуры были ближе друг к другу и чтобы заголовок был в левом конце ряда. Чего мне не хватает в этой предположительно простой задаче?

В этом варианте добавлен неравномерный интервал.

# Input
fig, axs = plt.subplots(1,10,figsize=(15,3), squeeze=False)
fig.subplots_adjust(hspace=0, wspace=0.1)
fig.suptitle('Input', x=0.1, y=0.6)
for i in range(1):
    for j in range(10):
        im = x_true_np[1,i*20+j]
        axs[i][j].imshow(im, cmap="gray")
        axs[i][j].axis('off')
# Ground Truth
fig, axs = plt.subplots(1,10,figsize=(15,3), squeeze=False)
fig.subplots_adjust(hspace=0, wspace=0.1)
fig.suptitle('Ground Truth', x=0.1, y=0.6)
for i in range(1):
    for j in range(0,10):
        im = x_true_np[1,i*20+j+10]
        axs[i][j].imshow(im, cmap="gray")
        axs[i][j].axis('off')
# Predictions
fig, axs = plt.subplots(1,10,figsize=(15,3), squeeze=False)
fig.subplots_adjust(hspace=0, wspace=0.1)
fig.suptitle('Predictions', x=0.1, y=0.6)
for i in range(1):
    for j in range(0,10):
        im = x_pred_np[1,i*20+j]
        axs[i][j].imshow(im, cmap="gray")
        axs[i][j].axis('off')

enter image description here

В этом варианте игнорируетсяПараметр hspace и даже не отображает заголовки.

fig, axs = plt.subplots(3,10,figsize=(15,10), squeeze=False)
fig.subplots_adjust(hspace=0, wspace=0.1)
axs[0][0].set_ylabel("Input", fontsize=20)
for j in range(10):
    im = x_true_np[1,j]
    axs[0][j].imshow(im, cmap="gray")
    axs[0][j].axis('off')
axs[1][0].set_ylabel("Ground Truth", fontsize=20)
for j in range(10):
    im = x_true_np[1,10+j]
    axs[1][j].imshow(im, cmap="gray")
    axs[1][j].axis('off')
axs[2][0].set_ylabel("Ground Truth", fontsize=20)
for j in range(10):
    im = x_pred_np[1,j]
    axs[2][j].imshow(im, cmap="gray")
    axs[2][j].axis('off')    
fig.tight_layout() 

sub

1 Ответ

0 голосов
/ 23 октября 2019

В итоге я использовал панель инструментов ImageGrid. Намного проще.

from mpl_toolkits.axes_grid1 import ImageGrid

idxs = [6,7,8,9]

for idx in idxs:
    fig  = plt.figure(idx, (15, 10))
    grid = ImageGrid(fig, 111, nrows_ncols=(3, 10), axes_pad=0.1)
    for i in range(3):
        grid[0].set_ylabel("Input")
        grid[0].set_ylabel("Ground Truth")
        grid[0].set_ylabel("Prediction")
        for j in range(10):
            grid[j].imshow(x_true_np[idx,j], cmap="gray")
            grid[j+10].imshow(x_true_np[idx,j+10], cmap="gray")
            grid[j+20].imshow(x_pred_np[idx,j], cmap="gray")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...