matplotlib 鼠标在折线上悬停显示坐标标签
时间: 2023-11-07 19:07:39 浏览: 123
你可以使用 matplotlib 的事件处理器来实现这个功能。具体步骤如下:
1. 导入 matplotlib 和 numpy 模块。
```
import matplotlib.pyplot as plt
import numpy as np
```
2. 创建坐标系和折线图,并绑定鼠标事件。
```
fig, ax = plt.subplots()
line, = ax.plot(np.random.rand(10))
def on_mouse_move(event):
if event.inaxes == ax:
x, y = event.xdata, event.ydata
ax.set_title(f'x={x:.2f}, y={y:.2f}')
fig.canvas.draw()
fig.canvas.mpl_connect('motion_notify_event', on_mouse_move)
```
3. 在鼠标移动时,获取当前鼠标所在的坐标点,并在折线上显示该点坐标的标签。
完整代码示例:
```
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
line, = ax.plot(np.random.rand(10))
def on_mouse_move(event):
if event.inaxes == ax:
x, y = event.xdata, event.ydata
ax.set_title(f'x={x:.2f}, y={y:.2f}')
fig.canvas.draw()
fig.canvas.mpl_connect('motion_notify_event', on_mouse_move)
plt.show()
```
阅读全文