Display a bar chart.

This is just syntax-sugar around st.altair_chart. The main difference is this command uses the data's own column and indices to figure out the chart's spec. As a result this is easier to use for many "just plot this" scenarios, while being less customizable.

If st.bar_chart does not guess the data specification correctly, try specifying your desired chart using st.altair_chart.

Function signature

st.bar_chart(data=None, width=0, height=0, use_container_width=True)


data (pandas.DataFrame, pandas.Styler, pyarrow.Table, numpy.ndarray, Iterable, or dict)

Data to be plotted. Pyarrow tables are not supported by Streamlit's legacy DataFrame serialization (i.e. with config.dataFrameSerialization = "legacy"). To use pyarrow tables, please enable pyarrow by changing the config setting, config.dataFrameSerialization = "arrow".

width (int)

The chart width in pixels. If 0, selects the width automatically.

height (int)

The chart height in pixels. If 0, selects the height automatically.

use_container_width (bool)

If True, set the chart width to the column width. This takes precedence over the width argument.


chart_data = pd.DataFrame(
     np.random.randn(50, 3),
     columns=["a", "b", "c"])

(view standalone Streamlit app)

Was this page helpful?

editSuggest edits

Still have questions?

Our forums are full of helpful information and Streamlit experts.