I need to make a plotly bar chart with bars ordered by value in descending order. I first order the dataframe by value in descending order. Then I use plotly.express to generate interactive bar chart. However, I found the bars are still in ascending order. Does anyone know what I did wrong? Thanks a lot for help.
import plotly.express as px
dat = pd.DataFrame({'word': ['apple', 'grape', 'orange', 'pear'],
'counts': [20, 5, 25, 10] } )
dat = dat.sort_values('counts', ascending=False)
px.bar(dat, x = 'counts',y='word', orientation='h')
In the latest version of plotly 5.5.0, you can use categoryorder
without the need for sorting the dataframe:
import plotly.express as px
dat = pd.DataFrame({'word': ['apple', 'grape', 'orange', 'pear'],
'counts': [20, 5, 25, 10] } )
fig = px.bar(dat, x = 'counts',y='word', orientation='h')
fig.update_layout(yaxis={'categoryorder':'total ascending'}) # add only this line
You should set ascending
to True
: The values of the y axis are ascending from bottom to top.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With