我有一个对象A
来实例化一个对象B
,并且它的构造函数中有一个对象B
self.ani = animation.FuncAnimation(
self.figure, func=self.gen_data, fargs=[self.data_dict],
blit=True, repeat=False)
但是,self.gen_method
永远不会被调用。我该怎么做以确保不是这种情况?
我最终做的是将上面的代码放在一个在对象A
中触发的回调中,然后在对象refresh()
上调用B
方法,但我不想要继续重建动画。应该有一种方法只构建一次,但是如何?
那么解决方案是什么,如何确保定期调用func
?
答案 0 :(得分:0)
这是Minimal, Complete, and Verifiable example使用完全您的代码并且工作得很好:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
class A():
def __init__(self):
self.b = B()
class B():
def __init__(self):
self.figure = plt.figure()
plt.axis((0,1,0,1))
self.l1, = plt.plot([],[], color="r")
self.data_dict = np.random.rand(40,10)
self.ani = animation.FuncAnimation(
self.figure, func=self.gen_data, fargs=[self.data_dict],
blit=True, repeat=False)
def gen_data(self, _, data):
self.l1.set_data(np.linspace(0,1,10), data[_%40,:])
return self.l1,
a = A()
plt.show()