Я пытаюсь сделать большую многопанельную фигуру из нескольких небольших графиков, используя 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()
Текущий вывод кода
Требуемый вывод кода