反转图例顺序而不更改绘图表达条形图中的条形顺序

Max*_*nis 5 python plot plotly plotly-python plotly-express

我想更改plotly.express条形图图例中项目的顺序。例如,我想在此图上显示“午餐前的晚餐”(当前的行为对于水平条形图尤其尴尬,因为条形的顺序与图例顺序相反):

import plotly.express as px
df = px.data.tips()
# Sort to put dinner on top.
df.sort_values('time', ascending=False, inplace=True)
fig = px.bar(df, y='sex', x='total_bill', color='time', barmode='group',
             orientation='h')
fig.update_layout(yaxis={'categoryorder': 'total ascending'})
fig.show()
Run Code Online (Sandbox Code Playgroud)

绘图结果

Max*_*nis 11

添加legend={'traceorder': 'reversed'}update_layout声明中:

import plotly.express as px
df = px.data.tips()
# Sort to put dinner on top.
df.sort_values('time', ascending=False, inplace=True)
fig = px.bar(df, y='sex', x='total_bill', color='time', barmode='group',
             orientation='h')
fig.update_layout(yaxis={'categoryorder': 'total ascending'},
                  legend={'traceorder': 'reversed'})
fig.show()
Run Code Online (Sandbox Code Playgroud)

情节结果