我正在用Python编写一个程序,使用matplotlib(除其他外)运行一个动画,显示时间依赖的薛定谔方程的数值解.
一切都运行正常,但一旦动画完成运行,我希望它所在的窗口关闭.我这样做的方式(如下所示)有效,但抛出的异常似乎无法捕获.它适用于我需要它做的事情,但错误看起来非常混乱.
我有一个替代方法,可以在不抛出错误的情况下工作,但需要用户手动关闭窗口(对我来说是不可接受的).有人可以指出我做错了什么,或建议更好的选择?
我的代码的相关部分的简化版本如下:
from matplotlib import animation as ani
from matplotlib import pyplot as plt
multiplier = 0
def get_data(): # some dummy data to animate
x = range(-10, 11)
global multiplier
y = [multiplier * i for i in x]
multiplier += 0.005
return x, y
class Schrodinger_Solver(object):
def __init__(self, xlim = (-10, 10), ylim = (-10, 10), num_frames = 200):
self.num_frames = num_frames
self.fig = plt.figure()
self.ax = self.fig.add_subplot(111, xlim = xlim, ylim = ylim)
self.p_line, = …Run Code Online (Sandbox Code Playgroud)