这是一个关于Matplotlib的FuncAnimation方法的简单问题。我已经尝试了一切,但却无法让它发挥作用!
我正在编写一个代码,允许用户在im show plot上选择一条水平线,这样他们就可以看到对应于每个像素(y轴)的数组的评估,其中每个点对应另一个像素预定的numpy数组。 x-数组(x值的集合标记为“lambda_array”,长度为1024,y值标记为“intensity_shaped”,并且为[10] [256] [1024]形状的数组,或者只是[y] [x ] [值]。基本上我希望动画迭代的是intensity_shaped [y] [x + i] [2:values],其中i是迭代器。
这个问题与水平线或事件处理无关,我根本无法使'FuncAnimation'方法正常运行...它创建了一个新窗口,但它没有任何内容。我已经确定了三个可能的假设:1)我可能会误认为函数工作的一个简单步骤2)与numpy数组存在某种不兼容性3)我需要使用'plt.draw'重绘它我是没做......
对于知道如何使用Matplotlib制作动画的人来说,这应该是相对直截了当的。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
plt.ion()
fig_anim = plt.figure("Animation")
graph, = plt.plot([],[], '-r')
def init_graph():
graph.set_data((lambda_array), intensity_shaped[5][50][2:]) #<- these are both numpy arrays.
return graph,
def animate(k):
graph.set_ydata(intensity_shaped[5][50+k][2:])
return graph,
def animate_func():
anim = animation.FuncAnimation(fig_anim,animate,
init_func=init_graph,
frames =100, interval = 50)
plt.draw()
return anim
animate_func() #<- this doens't work alone
animation.FuncAnimation(fig_anim,animate, #<- this doesn't help
init_func=init_graph,
frames =100, interval = 50)
plt.show()