反转图例顺序而不更改绘图快速条形图中的条形顺序

Posted

技术标签:

【中文标题】反转图例顺序而不更改绘图快速条形图中的条形顺序【英文标题】:Reverse legend order without changing bar order in plotly express bar plot 【发布时间】:2020-10-18 00:50:21 【问题描述】:

我想更改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()

【问题讨论】:

这能回答你的问题吗? Customizing the order of legends in plotly @vestland 我不这么认为,它没有使用plotly.express,虽然它提到了traceorder,但它并没有暗示我提供的简单答案legend='traceorder': 'reversed' 【参考方案1】:

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()

【讨论】:

以上是关于反转图例顺序而不更改绘图快速条形图中的条形顺序的主要内容,如果未能解决你的问题,请参考以下文章

如何设置图例中的项目并使用数据框条形图进行绘图

在堆积条形图中反转 geom_text() (ggplot2)

如何改变条形图中的条形顺序?

如何在绘图快速条形图中添加一条线

ggplot2条形图中的顺序条

如何将值放在格条形图的条形图中并有图例