You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Plotly图表中高亮显示光标对应的X、Y轴数值?

Plotly实现光标悬停时高亮对应X/Y轴刻度

要实现光标移动时高亮对应X/Y轴的刻度及数值,你可以通过配置Plotly的**轴尖刺(Spike)**属性结合悬停模式来完成,以下是具体实现步骤和修改后的代码:

核心配置说明

  • hovermode='x':设置悬停模式为X轴触发,光标悬停时会显示对应X位置的所有数据点提示,并触发轴尖刺。
  • 轴的spikemode:控制尖刺的显示方式,'across'表示穿过整个图表区域,'marker'表示仅在数据点位置显示,'both'则同时显示两者。
  • spikecolor/spikethickness/spikedash:分别设置尖刺线的颜色、粗细和线型,用来突出显示对应轴刻度。
  • showspikes=True:显式开启轴尖刺功能,确保高亮效果生效。

修改后的完整代码

import datetime as dt
import panel as pn
import yfinance as yf
import plotly.graph_objs as go

pn.extension()

# 数据获取
vix_tickers = ['AUDJPY=X']
df = yf.download(vix_tickers,
                 auto_adjust=True,
                 progress=False,
            )
df = df[["Close"]]
df.sort_index(ascending=True, inplace=True)

# 创建图表
fig = go.Figure()
trace = go.Scatter(x=list(df.index), y=list(df.Close))
fig.add_trace(trace)

# 配置布局,添加轴高亮相关设置
fig.update_layout(
    title="Time series with range slider and selectors",
    hovermode='x',  # 开启X轴触发的悬停模式
    xaxis=dict(
        rangeselector=dict(
            buttons=list(
                [
                    dict(count=1, label="1m", step="month", stepmode="backward"),
                    dict(count=6, label="6m", step="month", stepmode="backward"),
                    dict(count=1, label="YTD", step="year", stepmode="todate"),
                    dict(count=1, label="1y", step="year", stepmode="backward"),
                    dict(step="all"),
                ]
            )
        ),
        rangeslider=dict(visible=False),
        type="date",
        # X轴尖刺配置
        showspikes=True,
        spikemode='across',
        spikecolor='#ff4444',
        spikethickness=2,
        spikedash='solid'
    ),
    yaxis=dict(
        # Y轴尖刺配置
        showspikes=True,
        spikemode='across',
        spikecolor='#ff4444',
        spikethickness=2,
        spikedash='solid'
    )
)

fig.show()

效果说明

运行代码后,当你将光标移动到图表上的任意位置时:

  • 会自动显示一条垂直于X轴的红色实线,指向对应的X轴刻度;
  • 同时显示一条水平于Y轴的红色实线,指向对应数据点的Y轴刻度;
  • 配合悬停提示框,能清晰看到当前位置对应的X/Y轴数值。

内容的提问来源于stack exchange,提问作者Pratik Ghodke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:15:56