我正在尝试使用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()