John Hunter wrote:
> Use the gtk mainloop and do your figure updates in a timeout add or a
> idle handler (as suggested in the animation tutorial at
> http://www.scipy.org/Cookbook/Matplotlib/Animations
Excellent, thanks. Your sample code adapted nicely; appended below for
posterity.
dan
import gobject
import numpy as np
import matplotlib
matplotlib.use('GTKAgg')
import matplotlib.pyplot as plt
import threading, time
class PylabThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.fig = plt.figure()
ax = self.fig.add_subplot(111)
self.line, = ax.plot(np.random.rand(10))
ax.set_ylim(0, 1)
def update(self):
self.line.set_ydata(np.random.rand(10))
self.fig.canvas.draw_idle()
return True # return False to terminate the updates
def run(self):
gobject.timeout_add(100, self.update) # you can also use idle_add
to update when gtk is idle
plt.show()
if __name__ == "__main__":
p = PylabThread()
p.start()
i = 0
while True:
print "%.2f: %d" % (time.time(), i)
i += 1
time.sleep(.5)
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users