Plotly折线图悬停时显示任意位置两位小数而非最近数据点
解决Plotly折线图任意位置悬停显示插值数值的问题
默认情况下,Plotly折线图的悬停提示只会触发数据集内的点位置,要实现鼠标在折线任意位置悬停时,显示插值后的x、y两位小数数值,需要调整以下关键设置:
核心修改点
- 启用x轴对齐的悬停模式,让Plotly根据鼠标当前x位置自动计算对应插值y值
- 允许在折线连线上触发悬停事件
- 确保提示框格式正确输出两位小数
修改后的完整代码
import pandas as pd import plotly.graph_objects as go df = pd.DataFrame({'col1':[0.5,1.5,2.5], 'time':[2,3.5,4.5]}) def plot(): fig = go.Figure() fig.add_trace(go.Scatter( x = df['time'], y = df['col1'], mode='lines', name = 'time plot', hovertemplate='x: %{x:.2f}<br>y: %{y:.2f}<extra></extra>', hoveron='lines+points' # 支持在连线和数据点上触发悬停 )) fig.update_layout( title='Plot', xaxis_tickformat = '.3f', hovermode='x' # 基于x轴位置自动插值计算对应y值 ) fig.show() plot()
关键设置说明
hovermode='x':这是实现任意位置悬停的核心配置,Plotly会根据鼠标当前的x坐标,通过线性插值计算出对应的y值,而非仅取最近的数据集点。hoveron='lines+points':确保鼠标在折线的任意连线上悬停时也能弹出提示框,不再局限于原始数据点位置。hovertemplate:用%{x:.2f}和%{y:.2f}指定两位小数格式,<extra></extra>用来隐藏默认的系列名称后缀,让提示内容更简洁。
内容的提问来源于stack exchange,提问作者serdar_bay
相关产品推荐
相关产品推荐

