matplotlib 曲线上鼠标悬停显示坐标标签
时间: 2023-08-17 08:09:08 浏览: 109
要在 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 坐标值。你可以根据自己的需要对标注进行自定义。
相关问题
matplotlib 鼠标在曲线上悬停显示坐标标签
在 `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 曲线上鼠标悬停时显示自定义标注,可以使用 mplcursors 库。该库允许在 matplotlib 图表上添加光标,并在光标悬停在数据点上时显示标注。下面是一个示例代码,演示如何使用 mplcursors 在 matplotlib 图表上显示自定义标注:
```python
import matplotlib.pyplot as plt
import mplcursors
# 创建一个简单的 matplotlib 曲线图
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
# 定义要显示的标注内容
labels = ['point 1', 'point 2', 'point 3']
# 使用 mplcursors 在曲线上添加光标,并设置标注内容
cursor = mplcursors.cursor(ax)
@cursor.connect("add")
def on_add(sel):
sel.annotation.set(text=labels[sel.target.index])
# 显示图表
plt.show()
```
在这个例子中,我们创建了一个包含三个数据点的简单曲线图。然后,我们定义了一个标注标签列表,包含每个数据点的标签。接着,我们使用 mplcursors 库在曲线图上添加光标,并使用 `@cursor.connect("add")` 装饰器定义一个回调函数,在光标悬停在数据点上时更新标注内容。最后,我们显示图表。
运行上面的代码后,当你将鼠标悬停在曲线上的任何数据点上时,都会显示相应标注的内容。你可以按照需要修改标注内容和样式来满足你的需求。