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

如何自定义Plotly双生子图中条形图的颜色条位置及参数?

调整Plotly子图中条形图颜色条的位置、高度与锚点参数

要调整子图中条形图的颜色条位置、高度等参数,核心是在marker.colorbar字典中配置画布坐标系下的位置与尺寸参数——默认颜色条会锚定整个画布,需要手动对齐到目标子图区域。

关键参数说明

  • x/y:颜色条在画布坐标系(取值0-1,左下角为原点)的位置
  • len:颜色条的高度(垂直方向长度),取值0-1,对应画布高度占比
  • xanchor/yanchor:颜色条的锚点对齐方式,比如yanchor="middle"让颜色条垂直居中
  • yref:默认"paper"使用画布坐标系,无需修改

修改后的代码示例

结合你提供的子图布局(下子图row_width为0.75),调整颜色条参数如下:

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

# 修正子图创建代码(补全subplot_titles的括号)
fig = make_subplots(
    rows=2, cols=1, 
    vertical_spacing=0.0,
    specs=[[{"secondary_y": False}], [{"secondary_y": True}]],
    subplot_titles=(figuretitle, ""),  # 两个子图对应两个标题,第二个留空或自定义
    row_width=[0.25, 0.75],  # 从下到上的子图高度占比
    shared_xaxes=True
)

# 添加条形图轨迹,调整颜色条参数
fig.add_trace(
    go.Bar(
        x=time_plot_location_list,
        y=slope_list_horner,
        marker=dict(
            color=slope_list_horner,
            colorscale="Bluered_r",
            showscale=True,
            colorbar=dict(
                title="Horner",
                # 颜色条位置:靠右对齐,垂直居中于下子图
                x=1.05,
                y=0.375,  # 下子图垂直范围0-0.75,中心在0.375
                len=0.7,  # 颜色条高度匹配下子图(略小于0.75避免超出)
                xanchor="left",
                yanchor="middle",
                # 可选:调整字体大小优化显示
                title_font=dict(size=12),
                tickfont=dict(size=10)
            )
        ),
        text=slope_list_horner,
        texttemplate='%{y:.2f}',
        hovertemplate='Horner:%{y:.2f}',
    ),
    row=2,  # 下子图对应row=2
    col=1
)

# 如果热力图也有颜色条,同样调整其参数避免重叠(示例)
# fig.add_trace(
#     go.Heatmap(...),
#     row=1, col=1
# )
# fig.update_traces(
#     marker_colorbar=dict(
#         x=1.05,
#         y=0.875,  # 上子图垂直范围0.75-1,中心在0.875
#         len=0.2,
#         xanchor="left",
#         yanchor="middle"
#     ),
#     selector=dict(type="heatmap")
# )

fig.show()

注意事项

  1. 子图的row_width是从下到上的高度占比,所以下子图垂直范围是0 ~ 0.75,上子图是0.75 ~ 1,颜色条的y值要对应子图中心位置
  2. 如果需要更精准对齐,也可以通过fig.layout查看子图的坐标轴位置,再微调y和len参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:01:30