如何在Pandas绘制的图表中实现鼠标悬停显示(x,y)数据点数值
实现Pandas绘图鼠标悬停显示坐标的方案
以下两种方案都可以基于你现有代码快速调整实现需求:
方案1:基于Matplotlib后端,使用mplcursors库
不需要大幅修改原有绘图逻辑,兼容性高:
- 第一步安装依赖库:
pip install mplcursors - 第二步调整代码,在原有绘图逻辑后添加悬停绑定逻辑即可:
import pandas as pd import mplcursors # 你的原有绘图代码 ax = df.plot(x=1, y=2) # x值取自pandas dataframe第1列,y值取自第2列 # 新增悬停提示逻辑 cursor = mplcursors.cursor(ax, hover=True) @cursor.connect("add") def on_add(sel): x, y = sel.target # 可自定义显示格式、精度、额外内容 sel.annotation.set_text(f"x值: {x:.2f}\ny值: {y:.2f}")
运行后鼠标悬停到数据点上时,会自动弹出标注框显示对应坐标值。
方案2:切换为Plotly交互式后端,原生支持悬停提示
如果可以换绘图后端,用Plotly生成的交互式图表默认自带悬停效果,代码更简洁:
- 第一步安装依赖库:
pip install plotly - 代码示例:
import pandas as pd # 全局设置Pandas绘图后端为Plotly pd.options.plotting.backend = "plotly" # 直接绘图即可,默认自带悬停显示x、y值 fig = df.plot(x=df.columns[1], y=df.columns[2]) fig.show()
生成的图表默认悬停就会展示对应数据点的列名、数值,也可以自定义悬停提示的内容和样式。
内容的提问来源于stack exchange,提问作者chen abien
相关产品推荐
相关产品推荐

