首页 > 解决方案 > Python - 破折号从 Excel 文件创建堆积条形图

问题描述

如何转换这样的图表:

df1 = pd.read_excel("C:/Users/Tim/PycharmProjects/firstdash/Analysis.xlsx")

     html.Div(
                [
                    html.H3("Graph 1"),
                    dcc.Graph(
                        id="g1",
                        figure={
                            "data": [
                                go.Bar(
                                    x=df1["Marketsegment"],
                                    y=df1["test"],
                                )]})],)

啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪

成堆积条形图。因此,一个包含 Total Residential 和 Business 的 Bar 以不同的颜色堆叠在一起。

不知何故,我似乎无法让它工作。

我发现的只是这种语法,它对我不起作用:

trace1 = go.Bar(
    x=['giraffes', 'orangutans', 'monkeys'],
    y=[20, 14, 23],
    name='SF Zoo'
)
trace2 = go.Bar(
    x=['giraffes', 'orangutans', 'monkeys'],
    y=[12, 18, 29],
    name='LA Zoo'
)

data = [trace1, trace2]
layout = go.Layout(
    barmode='group'
)

标签: pythonpython-3.xplotlyplotly-dash

解决方案


我认为问题在于如何创建 Graph 组件的图形属性和布局。

试试这个代码,它应该可以解决你的问题。

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go

app = dash.Dash()

trace1 = go.Bar(
    x=['giraffes', 'orangutans', 'monkeys'],
    y=[20, 14, 23],
    name='SF Zoo'
)
trace2 = go.Bar(
    x=['giraffes', 'orangutans', 'monkeys'],
    y=[12, 18, 29],
    name='LA Zoo'
)

app.layout = html.Div([
    dcc.Graph(id='bar_plot',
              figure=go.Figure(data=[trace1, trace2],
                               layout=go.Layout(barmode='stack'))
              )
    ])

它产生以下结果: 在此处输入图像描述


推荐阅读