В matplotlib я сохраняю ссылку на ось. Я хочу открыть новую фигуру, если окно, содержащее ось, было закрыто. Идея состоит в том, чтобы продолжать добавлять графики на фигуре, пока она не будет закрыта, затем я открою новую фигуру. Обратите внимание, что создание новых графиков инициируется событием на другом рисунке.Как определить, что ось принадлежит окну, которое было закрыто в matplotlib
Если это может помочь вам понять, что я пытаюсь сделать, вот класс:
class DetailedPlot(object):
def __init__(self, figure):
self.origin_figure = figure
self.axis = None
self.print_figure = None
self.origin_figure.canvas.mpl_connect('button_press_event', self)
def __call__(self, event):
if event.xdata is None or event.ydata is None:
return
r = round(event.xdata - 0.025, 1)
l = round(event.ydata - 0.025, 1)
if self.axis is None or self.axis.belongs_to_a_closed_window():
self.print_figure = plt.figure()
self.axis = self.print_figure.add_subplot(111)
plotting_fcn(self.axis, r, l)
Моя цель, чтобы найти такую функцию, как belongs_to_a_closed_window
Я уже пытался что-то в том, что мода, это не сработало, так что я думал, что это не работает так, как Я думал. Похоже, есть ошибка с бэкэндом OsX, даже если вы пример не запускаете событие закрытия ... – Steve
@Steve - Хм ... Ну, если бэкэнд OsX глючит, вы можете попробовать протестировать 'fig.canvas .manager в plt._pylab_helpers.Gcf.figs.values () 'Это взломанный, но он должен работать ... (также, если вы хотите проверить его из экземпляра осей, вы используете' ax.figure.canvas.manager' вместо 'fig.canvas.manager') –