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

如何针对单个X值堆叠对应完整Y数组的数值?

解决Plotly堆叠柱状图单个X轴值堆叠对应完整Y数组的问题

原代码的问题在于每个go.Bar的x传入了完整的X轴列表,导致不同系列的Bar会在所有X位置上匹配对应索引的Y值(长度不足时补NaN),最终堆叠的是跨系列同索引的元素。要实现单个X值堆叠其对应的完整Y数组,需要让该X值对应的所有Y元素都定位到同一个X坐标上。

修改后的代码如下:

import plotly.graph_objects as go

forx = [1,2,3,4,5]
fory = [[4,6,8], [2,9], [5], [3,1,5,2], [6,8]]

data = []

# 遍历每个X值及其对应的Y数组
for x_val, y_list in zip(forx, fory):
    # 为当前X值的每个Y元素创建独立的Bar,全部定位到同一个X坐标
    for layer_idx, y_val in enumerate(y_list):
        data.append(go.Bar(
            name=f"{x_val} 堆叠层 {layer_idx+1}",
            x=[x_val],
            y=[y_val]
        ))

fig = go.Figure(data=data)
fig.update_layout(barmode='stack')
fig.show()

关键说明:

  • 使用zip(forx, fory)确保每个X值精准对应自身的Y数组
  • 每个Y元素单独生成一个go.Bar,x参数固定为当前X值的单元素列表,让所有同X的Bar都落在同一位置
  • 通过barmode='stack'启用堆叠模式,同一X坐标下的多个Bar会自动垂直堆叠
  • 自定义Bar名称,方便在图例中区分不同的堆叠层级

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:42:13