如何在交互式图中获取指向鼠标的 (x,y) 坐标(Python Matplotlib)?
要获取交互式图中指向鼠标的 (x, y) 坐标,可以按照以下步骤进行操作:
步骤
- 设置图形大小,并调整子图之间和周围的填充。
-
创建一个新的图形或激活现有的图形。
-
将函数 mouse_event 绑定到事件 button_press_event 。
-
使用 numpy 创建 x 和 y 数据点。
-
使用 plot() 方法绘制 x 和 y 数据点。
-
使用 Show() 方法显示图形。
示例
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()
输出结果
它将产生以下输出−
现在,单击图中的任何位置,它将在控制台显示这些点的坐标−
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