我希望能够获取创建的图形的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()
然而,仔细搜索figure API,http://matplotlib.org/api/figure_api.html http://matplotlib.org/api/figure_api.html,没有用。我的 IDE 中的图形实例也没有自动完成,所有方法/成员似乎都没有给我一个“经理”。
那么我该如何做到这一点,一般来说,如果有 pyplot 方法,我需要在 OO 接口中进行类似操作,我应该在哪里查找?
PS: get_current_fig_manager() 返回什么样的对象?
在调试器中我得到:
type(get_current_fig_manager())
<type 'instance'>
这听起来很神秘......
好问题。你是对的,文档没有说任何关于能够获得经理或画布的信息。根据代码的经验,您问题的答案是:
>>> 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 方法),我知道画布存储在哪里并且可以直接访问它。
HTH
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)