From: Eric E. <ems...@ob...> - 2004-12-09 17:16:37
|
Hi, 1. slow plot 2. cursor issue 3. key press event ! ------- 1/ Here is the piece of code which is quite slow I think. Compared to pgplot this is a factor of more than 10. It does first draw a default plot (0,1 ?) and then overplot on it for each subplot. for this particular case I have 10 subplots. The slices are made of about 10-20 points each only (stored in a 3D array which is 48x5x20 points). I hope this answers the question. Sorry for the ''specifics''. for i in arange(ncoef) : subplot(nrow, 2, i+1) if i > 1 : temparray = self.Vcoef[indgal][i][:minind] / self.Vcoef[indgal][1][:minind] plot(self.Vrad[indgal][:minind], temparray, 'b-o', ms=4) else : plot(self.Vrad[indgal][:minind], self.Vcoef[indgal][i][:minind], 'b-o', ms=4) ylabel('$C_{%d'%i+'}$') for i in arange(ncoef) : j = i + ncoef subplot(nrow, 2, j+1) plot(self.Vrad[indgal][:minind], self.Vphi[indgal][i][:minind], 'b-o', ms=4) ylabel('$\phi_{%d'%i+'}$') 2/ the cursor issue and how to interact with it: yes indeed the solution I took is close to what is shown in some examples. I used a new class which I then use later on in interactive mode or not. Below is a simple/shortened example of the structure I create by just transferring the data (x,y,key, etc) to the cursor structure. I can then use : toto = cursor() to have it working. (I in fact define several different cursor_* classes for different purposes). So sorry if my mail sounded like ''I have found a new way...''. class cursor : def __init__(self): print 'Class initialized' self.figure = Figure() self.canvas = get_current_fig_manager().canvas self.canvas.mpl_connect('button_press_event', self.on_click) self.x = 0 self.y = 0 self.button = 1 def on_click(self, event): self.x = event.x self.y = event.y self.xd = event.xdata self.yd = event.ydata self.button = event.button ... 3/ key press event >Currently key_press_event is not implemented (though mouse move and >motion to capture and report key presses as event.key). We added this >because this is how we do the event handling across backends for the >toolbar. There are also some fixes in CVS to make disconnects work >properly, eg in the tk backend. > >It would be fairly straightforward to add a key_press_event under the >same framework. > > > That WOULD be great since this is exactly what I needed. For example being able to type ''h'' to make an horizontal cut of my image at the location corresponding to the mouse position.... I do that easily with ppgplot for example. -- =============================================================== Observatoire de Lyon ems...@ob... 9 av. Charles-Andre tel: +33 4 78 86 83 84 69561 Saint-Genis Laval Cedex fax: +33 4 78 86 83 86 France http://www-obs.univ-lyon1.fr/eric.emsellem =============================================================== |