Я использую пользовательский класс фигур при вызове 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
внутри конструктора для создаваемой им фигуры?
Figure
. Я думаю, вам лучше поместить эту логику в функциюadd_subplot
, а не в функцию__init__
. Фигура не обязательно должна иметь оси и может иметь любое количество осей, жесткое кодирование таких вещей в__init__
не кажется хорошей идеей. - person tacaswell   schedule 15.12.2014pyplot.subplots
вызывает для создания и добавления осей, которые он возвращает? - person orome   schedule 15.12.2014add_subplot
Вы должны прочитать исходник (он находится в pyplot.py), он прояснит многие из этих вопросов. - person tacaswell   schedule 15.12.2014add_subplot
отвечает за создание объекта оси, возвращаемогоpyplot.subplots
, но для начала мне нужна эта ось. Откуда это взялось; и могу ли я даже безопасно переопределитьadd_subplot
без всевозможных побочных эффектов (учитывая, что этот класс фигур всегда имеет только оси, определенные выше)? - person orome   schedule 15.12.2014