[Matplotlib-users] selecting points inside plot
Jody Klymak
jklymak at uvic.ca
Sat Sep 2 10:30:23 EDT 2017
Hi Jean-Philippe
There may be a fancier way, but you can just declare a global in
`process_button` to pass the value to a global variable.
Cheers, Jody
```
import matplotlib.pyplot as plt
x = []
def process_key(event):
print("Key:", event.key)
def process_button(event):
global x
print("Button:", event.x, event.y, event.xdata, event.ydata,
event.button)
x += [event.xdata]
fig, ax = plt.subplots(1, 1)
fig.canvas.mpl_connect('key_press_event', process_key)
fig.canvas.mpl_connect('button_press_event', process_button)
plt.show()
print(x)
```
On 2 Sep 2017, at 7:01, Jean-Philippe Grivet wrote:
> Hi
> Thank you for the very interesting refeerences. However, I find that
> the various programs are rather
> involved and that they do not exactly answer my needs. The simplest
> program is probably the following
> (from the boook by B. Root). It seems to be a step in the right
> direction!
>
> import matplotlib.pyplot as plt
>
> def process_key(event):
> print("Key:", event.key)
> def process_button(event):
> print("Button:", event.x, event.y, event.xdata, event.ydata,
> event.button)
>
> fig, ax = plt.subplots(1, 1)
> fig.canvas.mpl_connect('key_press_event', process_key)
> fig.canvas.mpl_connect('button_press_event', process_button)
> plt.show()
>
> So now, how do I retrieve the values event.xdata, event.ydata s(everal
> times) in
> order to use them in the main program ? (By the way, this is pretty
> easy
> in Matlab: the function xclick the mouse coordinates and index of the
> button
> pressed).
> Thank you soluch for your help.
> JP Grivet
>
>
> Le 30/08/2017 04:13, Thomas Caswell a écrit :
>> Jean,
>>
>> What you want to do is totally possible!
>>
>> I suggest having a look at the examples in
>> https://matplotlib.org/examples/widgets/index.html the `ginput`
>> method, https://github.com/tacaswell/interactive_mpl_tutorial and Ben
>> Root's book
>> https://www.amazon.com/Interactive-Applications-using-Matplotlib-Benjamin/dp/1783988843
>>
>> Tom
>>
>
>
> ---
> L'absence de virus dans ce courrier électronique a été vérifiée
> par le logiciel antivirus Avast.
> https://www.avast.com/antivirus
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20170902/5a192595/attachment.html>
More information about the Matplotlib-users
mailing list