Hi Everyone,
I'm puzzled by the following problem:
If I do plot updates by using a callback triggered by the multiprocessing module's apply_async then the updates do not take - only the final result is shown, as if in non-interactive mode.
What could be the cause for this? Are there known issues using the multiprocessing module and interactive mode in matplotlib.
Thanks!
-Kaushik
matplotlib.__version__ -> '0.99.1.1'
Example code is below:
import pylab
import time
from multiprocessing import Pool
pylab.ion()
x = pylab.arange(0,2*pylab.pi,0.01)
line, = pylab.plot(x,pylab.sin(x))
start_time = time.time()
def time_waster():
time.sleep(1)
def plot(Dummy=None):
t = time.time() - start_time
print t
line.set_ydata(pylab.sin(x+t/1.0))
pylab.draw()
for i in range(200):
plot()
pool = Pool()
for N in range(60):
pool.apply_async(time_waster,(),{},plot)
pool.close()
pool.join()