Как увеличить размер участков и уменьшить горизонтальный интервал? - PullRequest
2 голосов
/ 07 мая 2019

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

Вот мой код:

# DEFINE FIGURE SIZE
fig, axarr = plt.subplots(6,3,figsize=(30,30))

for i in range(6):

    for ii in range(3):
        #IMAGE
        axarr[i,ii].imshow([[1,2],[2,3]])
        # ADDITIONAL 
        axarr[i,ii].axis("off")
        axarr[i,ii].set_title(str(i), color = 'red')


plt.show()

Вот как это выглядит:

enter image description here

Я попытался изменить размер рисунка на 150x150, но результат почти тот же (названия больше не видны):

enter image description here

1 Ответ

2 голосов
/ 07 мая 2019

Измените размеры фигуры, чтобы они имели соотношение 6/3. В более общем случае, если у вас есть вложенные участки Nlines x Ncols, вам нужно использовать размеры рисунков с отношением Nlines / Ncols.

Это связано с тем, что imshow() использует и 'equal' форматное соотношение по умолчанию , чтобы гарантировать, что пиксели оказываются квадратными на экране. Это означает, что подзаголовки, которые изначально были созданы с прямоугольной формой с небольшим горизонтальным интервалом, изменяются в размер, чтобы иметь квадратную форму без изменения размеров фигуры, что приводит к большим зазорам между подплощадками. Чтобы избежать этой проблемы, тщательно выбирайте размер фигуры, чтобы подзаголовки уже были квадратными перед вызовом imshow().

width = 5
fig, axarr = plt.subplots(6,3,figsize=(width,width*6/3))

for i in range(6):

    for ii in range(3):
        #IMAGE
        axarr[i,ii].imshow([[1,2],[2,3]])
        # ADDITIONAL 
        axarr[i,ii].axis("off")
        axarr[i,ii].set_title(str(i), color = 'red')


plt.show()

enter image description here

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