我试图得到两个堆叠的条形图并排,但无法弄清楚。
下面是一个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中,而不是自己密谋,但老实说,这是次要的。将非常感谢您的帮助!
发布于 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()
https://stackoverflow.com/questions/55238122
复制相似问题