I see. Thanks, Ben. -Soumyaroop
On Thu, May 12, 2011 at 10:32 AM, Benjamin Root <ben.r...@ou.edu> wrote: > 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