Python-Dash从Excel文件创建堆叠的条形图

Tim*_*Tim 3 python python-3.x plotly plotly-dash

如何转换这样的图形:

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"],
                                )]})],)
Run Code Online (Sandbox Code Playgroud)

sdasdasdsadasdasda

进入堆积的条形图。因此,一个包含总住宅和企业的酒吧以不同的颜色堆叠在一起。

我似乎无法以某种方式使其工作。

我发现的只是这种语法,不适用于我:

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'
)
Run Code Online (Sandbox Code Playgroud)

小智 5

我认为问题在于如何创建图形属性和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'))
              )
    ])
Run Code Online (Sandbox Code Playgroud)

它产生以下结果: 在此处输入图片说明