Streamlit
1 Introduction to Streamlit
1.1 What is Streamlit?
1.2 Why use Streamlit?
1.3 Setting up the environment
1.4 Creating your first Streamlit app
2 Basic Components
2.1 Text elements
2.1 1 Displaying text
2.1 2 Formatting text
2.2 Data display elements
2.2 1 Displaying data frames
2.2 2 Displaying tables
2.3 Input widgets
2.3 1 Text input
2.3 2 Number input
2.3 3 Date input
2.3 4 Dropdown selection
2.3 5 Slider
2.3 6 Checkbox
2.3 7 Radio buttons
2.3 8 Buttons
3 Advanced Components
3.1 Interactive widgets
3.1 1 Multiselect
3.1 2 File uploader
3.1 3 Color picker
3.2 Media elements
3.2 1 Displaying images
3.2 2 Displaying videos
3.2 3 Displaying audio
3.3 Chart elements
3.3 1 Line chart
3.3 2 Bar chart
3.3 3 Area chart
3.3 4 Scatter chart
3.3 5 Map chart
4 Layout and Styling
4.1 Layout components
4.1 1 Columns
4.1 2 Tabs
4.1 3 Expander
4.2 Styling elements
4.2 1 Custom CSS
4.2 2 Theming
4.2 3 Adding custom fonts
5 State Management
5.1 Session state
5.1 1 Managing state across reruns
5.1 2 Persisting state
5.2 Caching
5.2 1 Caching functions
5.2 2 Caching data
6 Deployment
6.1 Deploying to Streamlit Sharing
6.1 1 Setting up Streamlit Sharing
6.1 2 Deploying your app
6.2 Deploying to other platforms
6.2 1 Deploying to Heroku
6.2 2 Deploying to AWS
6.2 3 Deploying to Google Cloud
7 Best Practices
7.1 Writing clean and maintainable code
7.2 Optimizing performance
7.3 Handling errors and exceptions
7.4 Version control with Git
8 Advanced Topics
8.1 Integrating with other libraries
8.1 1 Integrating with Pandas
8.1 2 Integrating with Plotly
8.1 3 Integrating with TensorFlow
8.2 Building complex apps
8.2 1 Creating multi-page apps
8.2 2 Handling authentication
8.2 3 Building interactive dashboards
8.3 Custom components
8.3 1 Creating custom widgets
8.3 2 Extending Streamlit with custom components
9 Case Studies
9.1 Building a data exploration app
9.2 Building a machine learning model deployment app
9.3 Building a real-time data visualization app
4 1 1 Columns Explained

1 1 Columns Explained

Key Concepts

Explanation

1. Columns

Columns in Streamlit are a way to organize content into separate vertical sections. This layout element is useful for creating complex interfaces where different types of content need to be displayed side by side.

2. st.columns

st.columns is a Streamlit function that creates a set of columns. You can specify the number of columns and their relative widths. This function returns a list of column objects that you can use to place content inside each column.

3. Column Width

The width of each column can be specified as a fraction of the total width of the container. For example, if you create three columns with widths of 1, 2, and 1, the second column will be twice as wide as the first and third columns.

4. Column Content

Content inside each column can include text, widgets, charts, and other Streamlit elements. You can place any Streamlit element inside a column by using the column object returned by st.columns.

Examples

Example 1: Basic Columns

import streamlit as st

col1, col2, col3 = st.columns(3)

with col1:
    st.write("Column 1")

with col2:
    st.write("Column 2")

with col3:
    st.write("Column 3")
    

Example 2: Columns with Different Widths

import streamlit as st

col1, col2, col3 = st.columns([1, 2, 1])

with col1:
    st.write("Column 1")

with col2:
    st.write("Column 2")

with col3:
    st.write("Column 3")
    

Analogies

Think of columns in Streamlit as lanes on a highway. Each lane (column) can carry different types of vehicles (content). The width of each lane can vary, allowing for more space for certain types of vehicles. By organizing content into columns, you can create a more structured and visually appealing interface.

By mastering columns in Streamlit, you can create complex and dynamic interfaces that make your applications more user-friendly and efficient.