gpt4 book ai didi

python - matplotlib 交互模式 : determine if figure window is still displayed

转载 作者:太空狗 更新时间:2023-10-29 17:12:28 25 4
gpt4 key购买 nike

我在交互模式下使用 matplotlib 向用户展示一个图表,帮助他们输入一系列变量。他们可以选择点击“?”显示此图,然后将重复变量提示。

如果它仍在显示,我怎么知道不要重新绘制它?

从表面上看,我有这个笨重的(伪)代码:

answer = None
done_plot = False
while answer == None:
answer = get_answer()
if answer == '?':
if done_plot:
have_closed = True
##user's already requested a plot - has s/he closed it?
## some check here needed:
have_closed = ?????

if have_closed == False:
print 'You already have the plot on display, will not re-draw'
answer = None
continue
plt.ion()
fig = plt.figure()
### plotting stuff
done_plot = True
answer = None
else:
###have an answer from the user...

我可以使用什么(根据 plt.gca()、fig 等...)来确定我是否需要重新绘图?有什么地方可以查看状态吗?

非常感谢,

大卫

最佳答案

与 unutbu 的回答一样,您还可以检查给定的图形是否仍然打开

import matplotlib.pyplot as plt

if plt.fignum_exists(<figure number>):
# Figure is still opened
else:
# Figure is closed

图的图号在fig.number中.

PS:注意figure(num=…)中的“数字”实际上可以是一个字符串:它显示在窗口标题中。但是,该图仍然有一个 number数字属性:原始字符串 num值不能与 fignum_exists() 一起使用.

PPS:也就是说,subplots(…, num=<string num>)使用给定的 string 数字正确恢复现有图形。因此,在 Matplotlib 的某些部分中,数字仍然通过其字符串编号已知(但 fignum_exists() 不使用此类字符串)。

关于python - matplotlib 交互模式 : determine if figure window is still displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557098/

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