如何将独立的轴对象组成一个新的画廊,如图

时间:2019-03-13 07:19:50

标签: python matplotlib

我想编写一个函数,该函数接收一系列轴对象(已经创建并在其中绘制数据)并将它们组成一个新的画廊,如图所示。

我的目标是像在这里看到的面孔画廊一样

https://scikit-learn.org/stable/auto_examples/decomposition/plot_faces_decomposition.html#sphx-glr-auto-examples-decomposition-plot-faces-decomposition-py

但是生成这些图库的代码只能用于图像列表,而不能用于轴对象列表。

我想这样做,因为我有不同的功能来绘制这些轴对象,它们是独立的函数。我想保持模块化的干净。组成已经创建的轴应该是独立于绘制各个轴的动作。

考虑以下示例:

make_axes是我的一项绘图功能的代表。

import matplotlib.pyplot as plt
import numpy as np

def make_axes():
    data = np.random.rand(1000,2)*10
    fig, ax = plt.subplots(1, 1)
    ax.scatter(data[:,0], data[:,1])

    return ax

我现在生成一个轴对象列表

axeses = [make_axes() for _ in range(9)]

然后定义我的合成函数

from math import ceil

def plot_gallery(axs, n_rows):
    fig, axs_ = plt.subplots(ceil(len(axeses)/n_rows), n_rows)
#     now somehow insert axs into figure and replace axs_
#     axs_ = axs

并将轴对象组合成一个新图形

plot_gallery(axeses, 3)

...这显然不起作用。正如您所期望的,我得到了一个3x3的空轴对象网格。

但是 我怎么做呢?

重申一下,我希望在plot_gallery中创建的3x3图形中的轴显示为axs传递的轴。

0 个答案:

没有答案