2016-01-21 63 views
0

我不知道是否有某种方法来绘制一个波形点,通过matplotlib指向一定的速率,使图形在窗口中缓慢出现。或者另一种图形方法以一定的速度出现在窗口中,而不是同时出现在所有点上。我已经尝试过了,但是我一次只能绘制一小段点绘制一个图形点到python

import numpy as np 
import matplotlib.pyplot as plt 
import time 

x = np.arange(0,5,0.001) 
y = np.sin(2*np.pi*x) 

ind_i = 0 
ind_f = 300 


while ind_f <= len(x): 

    xtemp = x[ind_i:ind_f] 
    ytemp = y[ind_i:ind_f] 

    plt.hold(True) 
    plt.plot(xtemp,ytemp) 
    plt.show() 
    time.sleep(1)  

    ind_i = ind_f 
    ind_f = ind_f + 300 

回答

1

您也可以使用Matplotlib的FuncAnimation函数来做到这一点。改编one of the matplotlib examples

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 

x = np.arange(0,5,0.001) 
y = np.sin(2*np.pi*x) 

def update_line(num, data, line): 
    line.set_data(data[..., :num]) 
    return line, 

fig = plt.figure() 

data = np.vstack((x,y)) 
l, = plt.plot([], [], 'r-') 
plt.xlim(0, 5) 
plt.ylim(-1, 1) 
line_ani = animation.FuncAnimation(fig, update_line, frames=1000, 
          fargs=(data, l), interval=20, blit=False) 
plt.show() 
+1

哇!这正是我所期待的。非常感谢@xnx! –