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

如何将Python-Dash单柱状图转换为堆叠柱状图?

如何将Dash单系列柱状图修改为堆叠柱状图?

你原来的代码是基于单列数据生成柱状图,现在要改成堆叠的,核心是要针对两个数据系列分别创建go.Bar trace,并且把布局里的barmode设置为'stack'(你之前示例用的'group'是分组柱状图,不是堆叠哦)。

步骤说明:

  • 首先确保你的Excel文件Analysis.xlsx里有三列:Marketsegment(作为x轴分类)、Total Residential、Business(这两列是要堆叠的数值)
  • 为每个系列创建独立的go.Bar对象,指定对应的y轴数据和系列名称
  • 在图表布局中设置barmode='stack'启用堆叠模式

修改后的完整代码:

import pandas as pd
import plotly.graph_objects as go
from dash import Dash, html, dcc

# 读取Excel数据
df1 = pd.read_excel("C:/Users/Tim/PycharmProjects/firstdash/Analysis.xlsx")

app = Dash(__name__)

app.layout = html.Div(
    [
        html.H3("Graph 1: Stacked Bar Chart"),
        dcc.Graph(
            id="g1",
            figure={
                "data": [
                    # 第一个系列:Total Residential
                    go.Bar(
                        x=df1["Marketsegment"],
                        y=df1["Total Residential"],
                        name="Total Residential",
                        marker_color="#1f77b4"  # 可选:自定义颜色
                    ),
                    # 第二个系列:Business
                    go.Bar(
                        x=df1["Marketsegment"],
                        y=df1["Business"],
                        name="Business",
                        marker_color="#ff7f0e"  # 可选:自定义颜色
                    )
                ],
                "layout": go.Layout(
                    barmode="stack",  # *关键*:设置为堆叠模式
                    xaxis_title="Market Segment",
                    yaxis_title="Value",
                    title="Market Segment Breakdown"
                )
            }
        )
    ]
)

if __name__ == "__main__":
    app.run_server(debug=True)

关键注意点:

  • 关键:两个go.Bar的x轴必须使用相同的列(df1["Marketsegment"]),这样才能正确对齐堆叠
  • 关键:barmode一定要设为'stack',而不是你之前示例里的'group'(后者是分组并排显示)
  • 如果你的Excel列名和我假设的不一样,记得替换成你实际的列名(比如如果列名是Total_Residential,就改成df1["Total_Residential"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:56:45