Matplot 跟随鼠标移动显示数据
时间: 2023-11-27 14:50:58 浏览: 123
鼠标跟随移动
3星 · 编辑精心推荐
你可以使用 Matplotlib 的事件处理机制实现鼠标移动时显示数据的功能。具体步骤如下:
1. 导入 Matplotlib 和 NumPy 库:
```python
import matplotlib.pyplot as plt
import numpy as np
```
2. 生成一些数据:
```python
x = np.linspace(0, 10, 100)
y = np.sin(x)
```
3. 创建一个画布,并绘制数据:
```python
fig, ax = plt.subplots()
ax.plot(x, y)
```
4. 定义一个函数,用于处理鼠标移动事件:
```python
def on_move(event):
if event.inaxes is not None:
x, y = event.xdata, event.ydata
ax.set_title('x={:.2f}, y={:.2f}'.format(x, y))
fig.canvas.draw_idle()
```
该函数会检查鼠标位置是否在坐标轴内部,如果是,则获取当前鼠标位置的数据,并在标题上显示。
5. 将事件处理函数与画布连接起来:
```python
fig.canvas.mpl_connect('motion_notify_event', on_move)
```
这里使用 `mpl_connect` 方法将 `motion_notify_event` 事件与 `on_move` 函数连接起来,当鼠标移动时,就会触发该事件。
6. 显示画布:
```python
plt.show()
```
完整代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
def on_move(event):
if event.inaxes is not None:
x, y = event.xdata, event.ydata
ax.set_title('x={:.2f}, y={:.2f}'.format(x, y))
fig.canvas.draw_idle()
fig.canvas.mpl_connect('motion_notify_event', on_move)
plt.show()
```
运行代码后,当鼠标移动到坐标轴内部时,就会在标题上显示当前鼠标位置的数据。
阅读全文