Computer >> Computer tutorials >  >> Programming >> Python

How get the (x,y) position pointing with mouse in an interactive plot (Python Matplotlib)?


To get the (x, y) positions pointing with mouse in an interactive plot, we can take the following steps

Steps

  • Set the figure size and adjust the padding between and around the subplots.

  • Create a new figure or activate an existing figure.

  • Bind the function *mouse_event* to the event *button_press_event*.

  • Create x and y data points using numpy.

  • Plot the x and y data points using plot() method.

  • To display the figure, use Show() method.

Example

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

def mouse_event(event):
   print('x: {} and y: {}'.format(event.xdata, event.ydata))

fig = plt.figure()
cid = fig.canvas.mpl_connect('button_press_event', mouse_event)

x = np.linspace(-10, 10, 100)
y = np.exp(x)

plt.plot(x, y)

plt.show()

Output

It will produce the following output −

How get the (x,y) position pointing with mouse in an interactive plot (Python Matplotlib)?

Now, click anywhere on the plot and it will show the coordinates of the points on the console −

x: -3.633289020076159 and y: 7344.564590474489
x: 3.2193731551790172 and y: 3255.6463283494704
x: 8.680088326085489 and y: 802.2953710744596
x: 7.680741758860773 and y: 11269.926122114506
x: 0.6139338906288732 and y: 16503.741497634528