On Thursday, May 12, 2011, Soumyaroop Roy <roy.soumyar...@gmail.com> wrote: > Here's a short follow up question: > Is there a concept of erasing in matplotlib? If I were to erase an > axvline that I drew earlier, how would I do that? Can you use del to > delete the object and then force a redraw? > > -Soumyaroop > > On Mon, May 2, 2011 at 11:35 AM, Soumyaroop Roy > <roy.soumyar...@gmail.com> wrote: >> Thanks Justin. I have the event handling thing in place and was really >> looking for drawing options. Thanks for the tips. I'll look into them. >> regards, >> Soumyaroop >> >> On Mon, May 2, 2011 at 11:06 AM, Justin McCann <jne...@gmail.com> wrote: >>> >>> You'll want to use event handling to figure out where the user clicked, >>> and then you have a couple of options: Axes.vlines(), or pylab.axvline(). It >>> seems like pylab.axvline() will always span the entire y-axis by default, >>> but with Axes.vlines() you need to specify the ymin/ymax. Maybe someone else >>> knows of an argument to pass to Axes.vlines() that will always span the >>> entire y-axis. >>> Here's the code (assuming 'ipython -pylab'): >>> ======== >>> fig = figure() >>> plot([1,2,3,4], [5,6,7,8]) >>> def onclick(event): >>> """Draw a vertical line spanning the axes every time the user clicks >>> inside them""" >>> if event.inaxes: # make sure the click was within a set of axes >>> pylab.axvline(event.xdata, axes=event.inaxes, color='r', >>> linestyle=':') # red dotted line >>> event.inaxes.figure.canvas.draw() # force a re-draw >>> cid = fig.canvas.mpl_connect('button_press_event', onclick) # add the >>> click handler >>> ... interact with it >>> fig.canvas.mpl_disconnect(cid) # get rid of the click-handler >>> ======== >>> Docs: >>> Axes.vlines(): >>> http://matplotlib.sourceforge.net/api/axes_api.html#matplotlib.axes.Axes.vlines >>> pyplot.axvline(): >>> http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.axvline >>> Event >>> handling: http://matplotlib.sourceforge.net/users/event_handling.html >>> >>> Example: http://matplotlib.sourceforge.net/examples/event_handling/data_browser.html >>> Justin >>> >>> On Mon, May 2, 2011 at 10:08 AM, Soumyaroop Roy <roy.soumyar...@gmail.com> >>> wrote: >>>> >>>> Any pointers on this? >>>> On Sat, Apr 30, 2011 at 12:34 AM, Soumyaroop Roy >>>> <roy.soumyar...@gmail.com> wrote: >>>>> >>>>> Hi there: >>>>> I have an x-y plot and I want to draw a vertical marker (an x=c line) on >>>>> the plot on a mouse click. >>>>> How should I approach it? >>>>> regards, >>>>> Soumyaroop >>>> >>>>
No, don't use del. If you save the object returned by the call to axvline, then you should be able to call its .remove() method. That should do the proper bookkeeping. Ben Root ------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users