Рассматривая документацию matplotlib
, кажется, что стандартный способ добавления AxesSubplot
в Figure
заключается в использовании Figure.add_subplot
:
from matplotlib import pyplot
fig = pyplot.figure()
ax = fig.add_subplot(1,1,1)
ax.hist( some params .... )
Я хотел бы иметь возможность создавать объекты AxesSubplot
-like независимо от фигуры, поэтому я могу использовать их на разных рисунках. Что-то вроде
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