Insert a multi-element container that can be expanded/collapsed.
Inserts a container into your app that can be used to hold multiple elements and can be expanded or collapsed by the user. When collapsed, all that is visible is the provided label.
To add elements to the returned container, you can use "with" notation (preferred) or just call methods directly on the returned object. See examples below.
Warning
Currently, you may not put expanders inside another expander.
Function signature | |
---|---|
st.expander(label, expanded=False) | |
Parameters | |
label (str) | A string to use as the header for the expander. |
expanded (bool) | If True, initializes the expander in "expanded" state. Defaults to False (collapsed). |
Examples
You can use with notation to insert any element into an expander
st.bar_chart({"data": [1, 5, 2, 6, 2, 1]}) with st.expander("See explanation"): st.write(""" The chart above shows some numbers I picked for you. I rolled actual dice for these, so they're *guaranteed* to be random. """) st.image("https://static.streamlit.io/examples/dice.jpg")(view standalone Streamlit app)Or you can just call methods directly in the returned objects:
st.bar_chart({"data": [1, 5, 2, 6, 2, 1]}) expander = st.expander("See explanation") expander.write(""" The chart above shows some numbers I picked for you. I rolled actual dice for these, so they're *guaranteed* to be random. """) expander.image("https://static.streamlit.io/examples/dice.jpg")(view standalone Streamlit app)
Or you can use object notation and just call methods directly in the returned objects:
import streamlit as st
st.bar_chart({"data": [1, 5, 2, 6, 2, 1]})
expander = st.expander("See explanation")
expander.write("""
The chart above shows some numbers I picked for you.
I rolled actual dice for these, so they're *guaranteed* to
be random.
""")
expander.image("https://static.streamlit.io/examples/dice.jpg")