From: Rodrigo C. <rc...@ge...> - 2004-09-13 22:37:03
|
Ok, here's the problem, illlustrated by a simple variant of the dynamic_image_gtkagg.py example (see below). I've put in a colorbar and I'm letting the amplitude of the pattern grow linearly in time. The result is that the colormap limits remained fixed at their initial values (-2,2), rather than change in time. If I don't put in the colorbar, the colormap limits *do* change. I'm a bit confused about all this. I tried changing the normalization of the colormap doing im.autoscale(z) each time z is updated, but that doesn't work ... Rodrigo ----------- #!/usr/bin/env python """ An animated image """ import sys, time, os, gc from matplotlib import rcParams from matplotlib.matlab import * import gtk x = arange(120.0)*2*pi/120.0 x = resize(x, (100,120)) y = arange(100.0)*2*pi/100.0 y = resize(y, (120,100)) y = transpose(y) z = sin(x) + cos(y) im = imshow( z, cmap=cm.jet)#, interpolation='nearest') colorbar() manager = get_current_fig_manager() cnt = 0 tstart = time.time() def updatefig(*args): global x, y, cnt, start x += pi/15 y += pi/20 z = ( sin(x) + cos(y) ) * cnt/5. im.set_array(z) manager.canvas.draw() cnt += 1 if cnt==50: print 'FPS', cnt/(time.time() - tstart) return gtk.FALSE return True cnt = 0 gtk.idle_add(updatefig) show() ----------------------------- On Monday, September 13, 2004, at 03:47 PM, John Hunter wrote: >>>>>> "Rodrigo" == Rodrigo Caballero <rc...@ge...> writes: > > Rodrigo> One of my favorite aspects of matplotlib is how easy it > Rodrigo> is to make dynamic plots. When doing this with 2D > Rodrigo> renderings using pcolor or imshow, is there an easy way > Rodrigo> to also dynamically update the colorbar? > > It should *just work*. images (matplotlib.image.AxesImage) and > pcolors (matplotlib.collections.PolygonCollection) both derive from > matplotlib.cm.ScalarMappable. This class implements an observer > pattern, and the colorbar registers itself with the ScalarMappable > instance. If you change the normalization, or colormap, or > colorlimits, the ScalarMappable instance notifies it's observers, who > update automagically. > > Let me know if you run into any troubles. > > JDH > > > ------------------------------------------------------- > This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 > Project Admins to receive an Apple iPod Mini FREE for your judgement on > who ports your project to Linux PPC the best. Sponsored by IBM. > Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |