matplotlib: могу ли я создать объекты AxesSubplot, а затем добавить их в экземпляр Figure?

Глядя на документацию matplotlib , кажется, что стандартным способом добавления AxesSubplot к рисунку является использование Figure.add_subplot :

from matplotlib import pyplot

fig = pyplot.figure()
ax = fig.add_subplot(1,1,1)
ax.hist( some params .... )

Я хотел бы иметь возможность создавать AxesSubPlot -подобные объекты независимо от фигуры, чтобы я мог использовать их в разных фигурах. Что-то вроде

fig = pyplot.figure()
histoA = some_axes_subplot_maker.hist( some params ..... )
histoA = some_axes_subplot_maker.hist( some other params ..... )
# make one figure with both plots
fig.add_subaxes(histo1, 211)
fig.add_subaxes(histo1, 212)
fig2 = pyplot.figure()
# make a figure with the first plot only
fig2.add_subaxes(histo1, 111)

Возможно ли это в matplotlib , и если да, то как я могу это сделать?

Обновление: Мне не удалось разделить создание осей и фигур, но следующие примеры в ответы ниже, можно легко повторно использовать ранее созданные оси в новых экземплярах или экземплярах olf Figure. Это можно проиллюстрировать простой функцией:

def plot_axes(ax, fig=None, geometry=(1,1,1)):
    if fig is None:
        fig = plt.figure()
    if ax.get_geometry() != geometry :
        ax.change_geometry(*geometry)
    ax = fig.axes.append(ax)
    return fig
62
задан juanchopanza 12 June 2011 в 08:13
поделиться