You likely need to "show()" the canvas. I usually do this by calling 
"fig.canvas.show()" before the for loop.
Since you are using a Qt4 backend the canvas used by the figure is a 
QWidget, the basic component of a Qt4 GUI. I don't know if there is a 
more matplotlib specific way of doing this, but when dealing with a 
larger system this is how I do it.

I would also add a sleep ("from time import sleep") of a couple seconds 
for testing to make sure you are getting through the entire for loop 
before you can see it.

Please CC in any replies, thanks.

-Dave

On 3/11/13 8:58 AM, ndbeck...@gmail.com wrote:
> I want to update a plot in real time.  I did some goog search, and saw various
> answers.  Trouble is, they aren't working.
>
> Here's a typical example:
>
> import matplotlib.pyplot as plt
> import numpy as np
> fig=plt.figure()
> plt.axis([0,1000,0,1])
>
> i=0
> x=list()
> y=list()
>
> while i <1000:
>      temp_y=np.random.random()
>      x.append(i)
>      y.append(temp_y)
>      plt.scatter(i,temp_y)
>      i+=1
>      plt.draw()
>
> If I run this, it draws nothing.
>
> This is my matplotlibrc:
> backend : Qt4Agg
> mathtext.fontset: stix


------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to