Customizing the order of legends in plotly Customizing the order of legends in plotly python-3.x python-3.x

Customizing the order of legends in plotly


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 trace legendgroup 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 gofrom plotly.offline import init_notebook_mode, iplotinit_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')

enter image description here

with traceorder specification

import plotly.graph_objs as gofrom plotly.offline import init_notebook_mode, iplotinit_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')

enter image description here