You can use traceorder
key for legend:
Determines the order at which the legend items are displayed. If
“normal”, the items are displayed top-to-bottom in the same order as
the input data. If “reversed”, the items are displayed in the opposite
order as “normal”. If “grouped”, the items are displayed in groups
(when a tracelegendgroup
is provided). if “grouped+reversed”, the
items are displayed in the opposite order as “grouped”.
In your case, you should modify your layout
definition:
layout = go.Layout(
barmode="stack",
title=f'{measurement}',
xaxis=dict(
title="Count",
dtick=0),
yaxis=dict(
tickfont=dict(
size=10,
),
dtick=1),
legend={'traceorder':'normal'})
)
without traceorder specification
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
trace1 = go.Bar(x=['A', 'B', 'C'],
y=[20, 14, 23],
name="first")
trace2 = go.Bar(x=['A', 'B', 'C'],
y=[12, 18, 29],
name="second")
data = [trace1, trace2]
layout = go.Layout(barmode="stack",)
fig = go.Figure(data=data, layout=layout)
iplot(fig, filename="stacked-bar")
with traceorder specification
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
trace1 = go.Bar(x=['A', 'B', 'C'],
y=[20, 14, 23],
name="first")
trace2 = go.Bar(x=['A', 'B', 'C'],
y=[12, 18, 29],
name="second")
data = [trace1, trace2]
layout = go.Layout(barmode="stack",
legend={'traceorder':'normal'})
fig = go.Figure(data=data, layout=layout)
iplot(fig, filename="stacked-bar")