首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Plotly-Dash:希望从单个df列中并排显示两个堆叠条形图

Plotly-Dash:希望从单个df列中并排显示两个堆叠条形图
EN

Stack Overflow用户
提问于 2019-03-19 17:56:25
回答 1查看 3.2K关注 0票数 1

我试图得到两个堆叠的条形图并排,但无法弄清楚。

下面是一个df示例:

Field       Issue

Police      Budget cuts
Research    Budget cuts
Police      Time consuming
Banking     Lack of oversight
Healthcare  Lack of support
Research    Bureaucracy
Healthcare  Bureaucracy
Banking     Mistrust

我想要的是一个堆叠的柱状图的领域首先。它将有一个由2警察,2 x研究等分解的高度为8。然后我想要一个堆叠的问题条形图旁边的第一个图表。第二个高度为8,由2倍的预算削减,1倍的耗时,1倍的缺乏监督等堆叠而成。

我试过了:

要获取所有字段的堆叠条形图,请执行以下操作:

trace1 = go.Bar(
    x = df.Field.unique(),
    y = df.Field.value_counts(),
    name='Total Amount of roles'
)

要获得预算削减的堆叠条形图(然后复制到其他问题),请执行以下操作:

trace2 = go.Bar(
    x = df.Field.unique(),
    y = df[df['Issue'] == 'Budget cuts'].Field.value_counts(),
    name='Budget cuts'
)

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

fig = go.Figure(data=data, layout=layout)
py.plot(fig, filename='test.html')

但是上面的代码将两个图堆叠在一个图中。我要堆叠轨迹1和轨迹2。我也想把它集成到Dash中,而不是自己密谋,但老实说,这是次要的。将非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-10-11 15:05:30

工作代码片段,以防这是您所需要的:

import plotly.graph_objects as go

x=['a','b','c','d']
fig = go.Figure(go.Bar(x =x, y=[2,5,1,9], name='Montreal',
                   base = 0, width = 0.2, offset = 0.0,
                   marker = dict(color = 'rgb(0,120,255)')))

fig.add_trace(go.Bar(x=x, y=[1, 4, 9, 16], name='Ottawa',
                width = 0.2, offset = -0.2,
                marker = dict(color = 'rgb(250,60,0)')))
fig.add_trace(go.Bar(x=x, y=[6, 8, 4.5, 8], name='Toronto',
                 width = 0.2, offset = -0.2,
                 marker = dict(color = 'rgb(250,130,0)')))

fig.update_layout(barmode='stack', xaxis={'categoryorder':'array', 'categoryarray':['d','a','c','b']})
fig.show()

另一种布局:change: base,offset of second figure

import plotly.graph_objects as go

x=['a','b','c','d']
fig = go.Figure(go.Bar(x =x, y=[2,5,1,9], name='Montreal',
                   base = 0, width = 0.2, offset = 0.0,
                   marker = dict(color = 'rgb(0,120,255)')))

fig.add_trace(go.Bar(x=x, y=[1, 4, 9, 16], name='Ottawa',
                width = 0.2, offset = -0.4, base=0,
                marker = dict(color = 'rgb(250,60,0)')))
fig.add_trace(go.Bar(x=x, y=[6, 8, 4.5, 8], name='Toronto',
                 width = 0.2, offset = -0.2,
                 marker = dict(color = 'rgb(250,130,0)')))

fig.update_layout(barmode='stack', xaxis={'categoryorder':'array', 'categoryarray':['d','a','c','b']})
fig.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55238122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档