Streamlit stacked chart forcing alphabetical order

I am looking to create a streamlit stacked chart which keeps the order of my dataframe but streamlit is forcing alphabetical order.

Using this code - I want β€œa” to always be in the middle but streamlit re-arranges this by always putting β€œb” in the middle. What am I missing?
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=[β€˜c’, β€˜a’, β€˜b’])

st.bar_chart(chart_data)

Hi @Khuthadzo_Masindi, welcome to the Streamlit community!

In this case, it’s not Streamlit itself that’s forcing anything, as st.bar_chart is a convenience function around the Altair visualization library (via st.altair_chart). To directly specify column order, you can switch to using the Altair syntax directly, using order argument:

https://altair-viz.github.io/gallery/stacked_bar_chart_sorted_segments.html

Best,
Randy

That works. Thank you!