подсюжеты с одной фигуры должны иметь те же размеры, что и подсюжеты с другой фигуры

Следующий код:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(ncols=3, nrows=4, sharex='col', sharey=False,\
            subplot_kw=dict(adjustable='box-forced'), figsize=(8, 8))

fig, axes = plt.subplots(ncols=3, nrows=3, sharex='col', sharey=False,\
            subplot_kw=dict(adjustable='box-forced'), figsize=(8, 8))    
plt.show()

производит два сюжета:

Первый график имеет подграфики, распределенные как ncols=3, nrows=4. Размер каждого из этих участков идеально подходит для моих нужд.

введите здесь описание изображения

Второй график имеет подграфики, распределенные как ncols=3, nrows=3:

введите здесь описание изображения

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


person DavidC.    schedule 31.05.2018    source источник


Ответы (1)


Один из способов установить последнюю строку как «невидимую»:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(ncols=3, nrows=4, sharex='col', sharey=False,\
            subplot_kw=dict(adjustable='box-forced'), figsize=(8, 8))

fig, axes = plt.subplots(ncols=3, nrows=4, sharex='col', sharey=False,\
            subplot_kw=dict(adjustable='box-forced'), figsize=(8, 8))

[ax.set_visible(False) for ax in axes[3,:]]
plt.show()

введите здесь описание изображения

введите здесь описание изображения

person Scott Boston    schedule 31.05.2018
comment
Пожалуйста, счастливого кодирования. Я также думаю, что вы можете сделать это с помощью gridspec, если это не соответствует вашим потребностям. - person Scott Boston; 31.05.2018
comment
ммм ... не уверен, как gridspec будет контролировать размеры подзаговоров - с моей невежественной точки зрения я думаю, что он больше предназначен для расположения подзаговоров - person DavidC.; 31.05.2018