Получение менеджера фигур через интерфейс OO в Matplotlib

Я хочу получить figure_manager созданной фигуры: например Я могу сделать это с помощью интерфейса pyplot, используя:

from pylab import*
figure()    
plot(arange(100))
mngr = get_current_fig_manager()

Однако, что если у меня есть несколько цифр?

from pylab import *
fig0 = figure()
fig1 = figure()    
plot(arange(100))
mngr = fig0.get_manager() #DOES NOT WORK - no such method as Figure.get_manager()

однако, тщательно просматривая API рисунков, http://matplotlib.org/api/figure_api.html , было бесполезно. Ни одна из них не была автоматически завершена в моей IDE для экземпляра фигуры, ни один из методов /членов не дал мне «менеджера».

Итак, как мне это сделать и вообще, где мне искать, если есть метод pyplot, аналог которого мне нужен в интерфейсе OO?

PS: какой тип объекта возвращается get_current_fig_manager ()? В отладчике я получаю:

type(get_current_fig_manager())
<type 'instance'>

это звучит довольно загадочно ...

4 голоса | спросил alexandre iolov 25 +04002012-10-25T13:39:52+04:00312012bEurope/MoscowThu, 25 Oct 2012 13:39:52 +0400 2012, 13:39:52

1 ответ


0

Хороший вопрос. Ваше право, документы ничего не говорят о возможности получить менеджера или холст. Исходя из опыта использования кода, ответ на ваш вопрос:

>>> import matplotlib.pyplot as plt
>>> a = plt.figure()
>>> b = plt.figure()

>>> a.canvas.manager
<matplotlib.backends.backend_tkagg.FigureManagerTkAgg instance at 0x1c3e170>
>>> b.canvas.manager
<matplotlib.backends.backend_tkagg.FigureManagerTkAgg instance at 0x1c42ef0>

Лучшее место, чтобы узнать об этом материале, читая код. В этом случае я знал, что хочу получить холст, чтобы я мог овладеть менеджером фигур, поэтому я посмотрел на метод set_canvas в figure.py и нашел следующий код:

def set_canvas(self, canvas):
    """
    Set the canvas the contains the figure

    ACCEPTS: a FigureCanvas instance
    """
    self.canvas = canvas

Оттуда (поскольку не было метода get_canvas) я знал, где хранится холст, и мог получить к нему прямой доступ.

НТН

ответил pelson 25 +04002012-10-25T14:36:03+04:00312012bEurope/MoscowThu, 25 Oct 2012 14:36:03 +0400 2012, 14:36:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132