2015-02-09 3 views
3

Я делаю фигуру в общей сложности 68 подзаговоров и хочу удалить пустое пространство между ними. Вот что у меня есть:Как удалить «пустое» пространство между подзаголовками?

plot with too much space.

Как бы я это сделал?

EDIT: с помощью plt.tight_layout() делает его еще хуже:

even more space between the subplots

Вот мой код:

for j in range(0,len(sort_yf)): 
for i in range(0,len(yf)): 
    if yf[i]==sort_yf[j]: 
     sort_ID=np.append(sort_ID,'output/'+ID[i]+'.png') 
for i in range (1,69): 
    plt.subplot(17,4,i,aspect='equal') 
    plots=img.imread(sort_ID[i]) 
    plt.imshow(plots) 
    plt.axis('off') 
plt.show() 
+0

Я думаю, что ответ на этот вопрос дан здесь (https://stackoverflow.com/questions/41071947/how-to-remove-the-space-between-subplots-in-matplotlib-pyplot), поскольку ни один ответов здесь действительно полезны. – ImportanceOfBeingErnest

ответ

5

Вы пробовали тугой функциональность макета?

plt.tight_layout() 

Смотрите также HERE

EDIT: В качестве альтернативы, вы можете использовать gridspec:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib as mpl 
images = [np.random.rand(40, 40) for x in range(68)] 
gs = mpl.gridspec.GridSpec(17, 4) 
gs.update(wspace=0.1, hspace=0.1, left=0.1, right=0.4, bottom=0.1, top=0.9) 
for i in range(68): 
    plt.subplot(gs[i]) 
    plt.imshow(images[i]) 
    plt.axis('off') 
plt.show() 

enter image description here

+0

Привет, просто попробовал это и, к сожалению, это не сработало. По какой-то причине это показалось, что проблема еще хуже. – blablabla

+0

Как получилось хуже? Кроме того, можете ли вы изменить фрагмент кода вашего примера, чтобы он мог быть выполнен? Например, вы не указали 'sort_yf'. – SmCaterpillar

+0

Каждое изображение действительно уменьшилось, я загружу изображение того, что я имею в виду. Я действительно не могу, потому что для этого требуется файл csv и папка, полная изображений, которые достаточно велики. – blablabla

2

Отрегулируйте пропуски вокруг сюжетных с:

plt.subplots_adjust(wspace=0.01,hspace=0.01) 

В моем примере я только что изменил wspace и hspace. Вы также можете адаптировать позиции. Рассмотрим documentation.

Вы также можете изменить GridSpec Layout.

Смежные вопросы