Matploblib:创建多个图形面板,每个面板中包含大量子图

时间:2018-12-17 13:04:46

标签: python matplotlib

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

Current output of code

Desired output of code

0 个答案:

没有答案