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

Python中Plotly如何设置Y轴hoverlabel及调整成交量图大小

Plotly双轴hover显示+成交量图尺寸调整方案

一、实现十字线末端双轴悬浮标签显示

要让十字线同时显示两个轴的hoverlabel,核心是在布局里配置hover模式和轴的spike属性:

  • 设置全局hovermode='x',确保鼠标悬停时以x轴为基准同步显示所有trace的信息
  • 给每个Y轴开启showspikes=True,并设置spikemode='across',让十字线跨轴显示
  • 可选:自定义hoverlabel的样式(背景色、字体等)

二、缩小成交量图尺寸(解决超出区域问题)

如果是用make_subplots创建的上下子图,直接在创建子图时指定row_heights分配高度比例,比如让K线图占70%高度,成交量占30%,同时调整布局margin避免内容溢出。

修改后代码示例

import plotly.graph_objects as go
from plotly.subplots import make_subplots

# 创建子图,指定行高度比例
fig = make_subplots(rows=2, cols=1, shared_xaxes=True, row_heights=[0.7, 0.3], vertical_spacing=0.05)

# 添加K线图(示例数据)
fig.add_trace(
    go.Candlestick(
        x=['2024-01-01', '2024-01-02', '2024-01-03'],
        open=[100, 105, 102],
        high=[110, 108, 106],
        low=[98, 103, 99],
        close=[105, 104, 105],
        name='K线'
    ),
    row=1, col=1
)

# 添加成交量图(示例数据)
fig.add_trace(
    go.Bar(
        x=['2024-01-01', '2024-01-02', '2024-01-03'],
        y=[1000, 1500, 1200],
        name='Volume'
    ),
    row=2, col=1
)

# 配置布局,实现双轴hover和调整尺寸
fig.update_layout(
    hovermode='x',  # 以x轴为基准同步hover
    margin=dict(l=50, r=50, t=50, b=50),  # 调整边距避免溢出
    height=600  # 整体图高度
)

# 配置Y轴的spike属性,显示十字线和hoverlabel
fig.update_yaxes(
    showspikes=True,
    spikemode='across',
    spikecolor='#999',
    spikesnap='cursor',
    hoverlabel=dict(bgcolor='white', font_size=12)  # 自定义hoverlabel样式
)

fig.show()

效果对比

内容的提问来源于stack exchange,提问作者Aritra Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:30:54