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

Reply via email to