matplotlib 鼠标在曲线上悬停显示坐标标签
时间: 2023-11-07 09:07:39 浏览: 245
在 `matplotlib` 中,可以使用 `mpldatacursor` 库来实现鼠标悬停显示坐标标签的功能。下面是一个示例代码:
```python
import matplotlib.pyplot as plt
import mpldatacursor
# 生成数据
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 绘制曲线图
fig, ax = plt.subplots()
ax.plot(x, y)
# 添加数据光标
mpldatacursor.datacursor(display='multiple', draggable=True, formatter="x: {x:.2f}\ny: {y:.2f}".format)
plt.show()
```
在这个示例中,首先生成了一组数据,然后使用 `ax.plot` 绘制曲线图。接着,使用 `mpldatacursor.datacursor` 函数添加数据光标,并设置 `display` 参数为 `'multiple'` 表示可以同时显示多个数据光标,`draggable` 参数为 `True` 表示可以拖动数据光标,`formatter` 参数则设置了数据光标显示的文本格式。
运行这个示例代码,当鼠标悬停在曲线上时,会显示出该点的 x 坐标和 y 坐标。可以通过拖动数据光标来查看其他点的坐标。
相关问题
matplotlib 鼠标在折线上悬停显示坐标标签
你可以使用 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()
```
matplotlib 曲线上鼠标悬停显示坐标标签
要在 matplotlib 曲线上实现鼠标悬停显示坐标标签,可以使用 mpldatacursor 库。mpldatacursor 是一个用于 matplotlib 图形的交互式数据标注工具,它提供了一种简单的方式来添加悬停标注和交互式选择注释。
以下是一个简单的例子,演示如何在 matplotlib 曲线上启用数据标注:
``` python
import numpy as np
import matplotlib.pyplot as plt
import mpldatacursor
# 生成一些随机数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制曲线
fig, ax = plt.subplots()
ax.plot(x, y)
# 启用数据标注
mpldatacursor.datacursor()
plt.show()
```
运行上述代码,当鼠标悬停在曲线上时,会显示当前坐标点的 x,y 坐标值。你可以根据自己的需要对标注进行自定义。