Plotly如何将Candlestick蜡烛图与气泡散点图叠加并自定义气泡样式
可以实现,你只需要针对散点图部分做如下调整即可:
- 先从源数据中筛选出
value不为空的子集,仅对有数值的记录生成气泡 - 配置散点的
marker参数:根据value正负分别设置绿色/红色,气泡大小与value绝对值挂钩 - 散点需要绑定和蜡烛图一致的y2轴,避免坐标错位
修改后代码如下:
# 筛选value不为空的气泡专用数据子集 df_bubble = df.dropna(subset=['value']).copy() # 原有蜡烛图代码无需修改 fig.add_trace( go.Candlestick(x=df['date'], open=df['open'], high=df['high'], low=df['low'], close=df['close'], yaxis= "y2" ), row = 1, col=2 ) # 调整后的散点气泡代码 fig.add_trace(go.Scatter( x=df_bubble['date'], y = df_bubble['close'], mode='markers', marker=dict( # 气泡大小,可根据实际展示需求调整缩放系数 size = abs(df_bubble['value'])/10, # 按value正负设置颜色,正值为绿负值为红 color = ['green' if v > 0 else 'red' for v in df_bubble['value']], # 可选配置:增加透明度和边框,优化视觉效果 opacity = 0.6, line = dict(width=1, color='DarkSlateGrey') ), yaxis='y2' # 和蜡烛图共用y轴,保证坐标匹配 ), row = 1, col=2 )
如果需要实现悬停时展示value数值,可以在go.Scatter参数中新增text=df_bubble['value']配置。
内容的提问来源于stack exchange,提问作者kobo
相关产品推荐
相关产品推荐

