Могу ли я получить ось, которая будет возвращена `pyplot.subplots` внутри конструктора для фигуры, которую он создает?

Я использую пользовательский класс фигур при вызове pyplot subplot()

fig, ax = matplotlib.pyplot.subplots(FigureClass=MyFigure)

и хотел бы использовать объект(ы) оси, ax, обычно возвращаемый subplot(), в конструкторе для пользовательского класса фигуры. Например, я хотел бы взять эту ось и сдвоить ее:

class MyFigure(matplotlib.figure.Figure):

    def __init__(self, *args, **kwargs):
        super(MyFigure, self).__init__(**kwargs)

        self.ax_one = self.method_that_gets_the_ax_returned_by_subplots()
        self.ax_two = self.ax_one.twinx()
        self.ax_three = self.ax_one.twinx()

но я не могу найти способ получить (что будет возвращено как) ax здесь. Например, использование gca() приводит к пустой фигуре и «лишней» оси; в то время как использование get_axes() приводит к ошибкам (это пустой список).

Есть ли способ получить ось, которая будет возвращена subplots внутри конструктора для создаваемой им фигуры?


person orome    schedule 14.12.2014    source источник
comment
Нет, потому что оси не существуют во время создания объектов Figure. Я думаю, вам лучше поместить эту логику в функцию add_subplot, а не в функцию __init__. Фигура не обязательно должна иметь оси и может иметь любое количество осей, жесткое кодирование таких вещей в __init__ не кажется хорошей идеей.   -  person tacaswell    schedule 15.12.2014
comment
@tcaswell: есть ли метод фигуры, который pyplot.subplots вызывает для создания и добавления осей, которые он возвращает?   -  person orome    schedule 15.12.2014
comment
add_subplot Вы должны прочитать исходник (он находится в pyplot.py), он прояснит многие из этих вопросов.   -  person tacaswell    schedule 15.12.2014
comment
@tcaswell: я вижу, что add_subplot отвечает за создание объекта оси, возвращаемого pyplot.subplots, но для начала мне нужна эта ось. Откуда это взялось; и могу ли я даже безопасно переопределить add_subplot без всевозможных побочных эффектов (учитывая, что этот класс фигур всегда имеет только оси, определенные выше)?   -  person orome    schedule 15.12.2014