Zum Hauptinhalt springen

Streamlit Cheatsheet

Basics

Installation

pip install streamlit

Run Application

streamlit run <filename>.py

Essential Import

import streamlit as st
import pandas as pd
import numpy as np

App Structure

Streamlit apps are executed sequentially, from top to bottom.


Widgets and Layout

Titles, Headers, and Text

st.title("App Title")
st.header("Main Header")
st.subheader("Subheader")
st.text("Regular text.")
st.markdown("Markdown **text** with _formatting_.")

Interactive Elements

Text Inputs and Number Inputs

name = st.text_input("Enter your name")
number = st.number_input("Choose a number", min_value=0, max_value=100, step=1)

Sliders

age = st.slider("Age", 0, 100, 25)

Checkboxes, Radio Buttons, and Dropdowns

agree = st.checkbox("I agree")
option = st.radio("Favorite color", ["Blue", "Green", "Red"])
selection = st.selectbox("Select an option", ["Option 1", "Option 2", "Option 3"])

Multiselect

multiselect = st.multiselect("Select multiple options", ["Option A", "Option B", "Option C"])

Buttons

if st.button("Click me"):
st.write("Button clicked!")

Displaying Data

Tables and DataFrames

data = pd.DataFrame({
"Column 1": [1, 2, 3],
"Column 2": [4, 5, 6]
})
st.write(data)
st.dataframe(data) # Interactive table
st.table(data) # Static table

Data Summary and Descriptions

st.write(data.describe())  # Statistical summary

Data Visualization

Streamlit supports a range of visualization libraries (e.g., Matplotlib, Plotly, Altair, Seaborn).

Streamlit Charts

# Example data
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c']
)

st.line_chart(chart_data)
st.area_chart(chart_data)
st.bar_chart(chart_data)

Matplotlib

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.hist(data['Column 1'], bins=20)
st.pyplot(fig)

Plotly

import plotly.express as px

fig = px.scatter(data, x='Column 1', y='Column 2')
st.plotly_chart(fig)

Media and Files

Images

st.image("path_to_image.jpg", caption="Example Image", use_column_width=True)

Audio

st.audio("path_to_audio.mp3")

Video

st.video("path_to_video.mp4")

File Upload

uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
data = pd.read_csv(uploaded_file)
st.write(data)

st.sidebar.title("Sidebar Title")
sidebar_option = st.sidebar.selectbox("Sidebar Select", ["Option A", "Option B"])

Column Layout

col1, col2 = st.columns(2)
with col1:
st.write("Column 1")
with col2:
st.write("Column 2")

Status Indicators and Progress Bars

Status Indicators

st.success("Loaded successfully")
st.error("An error occurred")
st.warning("Warning message")
st.info("Information text")

Progress Bar

import time

my_bar = st.progress(0)
for percent_complete in range(100):
time.sleep(0.01)
my_bar.progress(percent_complete + 1)

Caching for Optimization

Use caching to speed up execution by storing the output of a function.

@st.cache
def load_data():
# Time-intensive loading process
return data

Advanced Features

Conditional Display of Widgets

if st.checkbox("Show options"):
st.write("Options are displayed!")

Download Button

csv = data.to_csv(index=False)
st.download_button(
label="Download CSV",
data=csv,
file_name="data.csv",
mime="text/csv"
)

App Deployment

  • Streamlit Cloud: https://share.streamlit.io
  • Other options include Heroku, AWS, Google Cloud, and Docker.

Example Deployment on Streamlit Cloud

  1. Create Repository: Store code in a GitHub repository.
  2. Connect to Streamlit Cloud: Go to https://share.streamlit.io and select the repository.
  3. Get App URL: The app will be accessible at a public URL.