Skip to content
Advertisement

Updating a plot in python in real time

I have a python code in which I calculate a quantity for a large number of values of a parameter and then plot the quantity as a function of a parameter. Here is an example

t = np.linspace(1,100,10000)
q = np.zeros(10000)
for i in np.arange(10000)
   q[i] = func(t[i])
plt.plot(t,q)
plt.show()

However I want that the plot to get dynamically updated such that every time a new element of the q array is calculated it is added to the plot. How can I do that?

Advertisement

Answer

from pylab import *

import time

ion()

tstart = time.time()               # for profiling
x = arange(0,2*pi,0.01)            # x-array
line, = plot(x,sin(x))

for i in arange(1,200):
    line.set_ydata(sin(x+i/10.0))  # update the data
    draw()                         # redraw the canvas


print 'FPS:' , 200/(time.time()-tstart)

ripped from the post i put in the comments …

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement