изменить размер подплота существующих субплотов в matplotlib - PullRequest
0 голосов
/ 24 сентября 2018

С учетом существующего числа подзаговоров некоторого измерения (например, 1 строка x 9 столбцов), как я могу изменить его на новое измерение (подзаговоры 3 строки x 3 столбец).

Этот вариант использования возникает, когдаиспользуя библиотеку печати, которая не предоставляет пользователю этот элемент управления (например, Nilearn.plotting.plot_prob_atlas ).Насколько мне известно, изначально создание фигуры с соответствующими размерами подзаговора невозможно.

1 Ответ

0 голосов
/ 25 сентября 2018

Я не уверен, что нет лучшего способа для решения конкретной проблемы размещения подзаговоров из nilearn.plotting.

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

import matplotlib.pyplot as plt
import matplotlib.gridspec
import numpy as np

# blackbox function that returns a figure with 9 subplots in a row
def blackbox():
    fig, axes = plt.subplots(ncols=9)
    for ax in axes:
        a = np.random.rand(10,10)
        ax.pcolormesh(a, vmin=0, vmax=1)
    return fig


fig = blackbox()

gs = matplotlib.gridspec.GridSpec(3,3)
for i, ax in enumerate(fig.axes):
    ax.set_position(gs[i].get_position(fig))

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