gpt4 book ai didi

matplotlib - Matplotlib中通过OO接口(interface)获取图形管理器

转载 作者:行者123 更新时间:2023-12-04 01:54:25 25 4
gpt4 key购买 nike

我希望能够获得已创建图形的 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 中的图形实例也没有自动完成,没有一个方法/成员似乎给了我一个“经理”。

那么我该如何做到这一点,一般来说,如果在 OO 接口(interface)中有一个 pyplot 方法我需要它的类似方法,我应该在哪里查看?

PS:get_current_fig_manager() 到底返回了什么样的对象?
在调试器中我得到:
type(get_current_fig_manager())
<type 'instance'>

听起来很神秘……

最佳答案

好问题。你的权利,文档没有说明能够获得经理或 Canvas 。根据代码经验,您的问题的答案是:

>>> 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>

了解这些内容的最佳方式是阅读代码。在这种情况下,我知道我想要获取 Canvas 以便我可以获取图形管理器,所以我查看了 figure.py 中的 set_canvas 方法。并找到以下代码:
def set_canvas(self, canvas):
"""
Set the canvas the contains the figure

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

从那里,(因为没有 get_canvas 方法),我知道 Canvas 存储在哪里并且可以直接访问它。

高温高压

关于matplotlib - Matplotlib中通过OO接口(interface)获取图形管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com