Matploblib: создайте несколько панелей рисунков с большим количеством вспомогательных участков в каждой панели - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь сделать большую многопанельную фигуру из нескольких небольших графиков, используя matplotlib.

Обычно я бы использовал plt.subplots для создания каждого отдельного участка, однако для данных, которые я сейчас пытаюсь построить, каждый рисунок панели уже состоит из множества отдельных участков (~ 100),поэтому потратить время на то, чтобы вручную разместить каждый из этих подзаговоров в нужном месте для каждой фигуры, которую я хочу объединить в основной сюжет, слишком много.

Я читал документацию по matplotlib, и кажется, чтоМне нужно создать несколько canvas объектов в одном окне, чтобы получить то, что я хочу.Я обнаружил эту проблему на github (https://github.com/matplotlib/matplotlib/issues/6936), запрашивающей аналогичную функцию для другого использования и похожую MEP23 https://matplotlib.org/devel/MEP/MEP23.html. Обе эти проблемы кажутся нерешенными / недоступными.

Кажется, это можетне возможно, или я просто упускаю способ сделать это. В любом случае было бы полезно знать.

Пример:

Приведенный ниже код генерирует пример типа рисункаЯ хочу создать и иметь несколько из них на одном графике.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x = np.linspace(0, 1, 100)
y = np.sin(2*np.pi*x)

fig, ax = plt.subplots(nrows=100)

for axis in ax:
    axis.plot(x, y)
    axis.set(yticks=[],
             xticks=[])
    sns.despine(ax=axis)

fig.text(0.5, 0.05, "x title", ha='center')
fig.text(0.05, 0.5, "y title", va='center', rotation='vertical')
fig.text(0.5, 0.9, "panel title", ha='center')


fig.subplots_adjust(hspace=0)

plt.show()

Текущий вывод кода

Требуемый вывод кода

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