使用matplotlib实时绘制数组数据时滞后

时间:2013-11-18 10:44:39

标签: arrays matplotlib graphing real-time-data

我在绘制两个数组大小的数据或列出Arr_Particles和Arr_Particles2时遇到一些麻烦。我现在绘制的图形用于绘制当我对我的程序进行初始化然后使用一个通常使用循环调用的函数对其进行绘图。我遇到的问题是,我有一个粒子在pygame窗口移动和碰撞的动画,为了在图上绘制点,我必须暂停绘制,当它在带有graph()的循环中运行时停止粒子的动画。我想知道这有什么办法吗?

以下代码:

用于创建数组和数字的代码:

Arr = []
Arr2 = []

fig = plt.figure()
ax = fig.add_subplot(111)
Ln, = ax.plot(Arr)
Ln1, = ax.plot(Arr2)
ax.set_xlim([0,100])
ax.set_ylim([0,40])
plt.ion()
plt.show()

调用绘图的代码是:

def Graph(Arr, Arr2, Arr_Particles, Arr_Particles2):


 #sets the variable Particle1No = the length of Arr_Particles
    Particle1No = len(Arr_Particles)
    #sets the variable Particle2No = the length of Arr_Particles2
    Particle2No = len(Arr_Particles2)

    #this appends the data from Particle1No to Arr
    Arr.append(Particle1No)
    #this sets ln y data as the data from Arr
    Ln.set_ydata(Arr)
    #this sets ln x data as len of Arr
    Ln.set_xdata(range(len(Arr)))

    #this appends the data from Particle2No to Arr2
    Arr2.append(Particle2No)
    #this sets ln y data as the data from Arr2
    Ln1.set_ydata(Arr2)
    #this sets ln x data as len of Arr2
    Ln1.set_xdata(range(len(Arr2)))

    #pauses plotting ( seems can be 0 or very close) ? it doesnt plot if this is removed either.
    plt.pause(0.1)

非常感谢任何帮助。

0 个答案:

没有答案