Streamlit 常用使用案例整理
一、数据可视化类
1. 交互式折线图展示
核心功能:使用 st.line_chart 创建交互式折线图,通过滑块动态调整数据范围
代码片段:
1 2 3 4 5 6 7 8
| import streamlit as st import pandas as pd import numpy as np
df = pd.DataFrame(np.random.randn(50, 3), columns=["A", "B", "C"]) start = st.slider("Start index", 0, 40, 0) end = st.slider("End index", 10, 50, 50) st.line_chart(df[start:end])
|
应用价值:适用于金融数据分析、销售趋势展示等场景,帮助用户直观观察数据变化趋势。
2. 地理数据可视化
核心功能:使用 st.map 快速展示地理空间数据
代码片段:
1 2 3 4 5 6 7 8 9
| import streamlit as st import pandas as pd
df = pd.DataFrame({ "lat": [39.9042, 31.2304, 23.1291], "lon": [116.4074, 121.4737, 113.2644], "name": ["北京", "上海", "广州"] }) st.map(df)
|
应用价值:用于物流路径规划、门店选址分析等场景,直观展示地理位置分布。
二、机器学习部署类
3. 图像分类模型演示
核心功能:使用 st.file_uploader 上传图片,结合预训练模型进行图像分类
代码片段:
1 2 3 4 5 6 7 8 9 10
| import streamlit as st from PIL import Image import tensorflow as tf
model = tf.keras.applications.MobileNetV2(weights="imagenet") uploaded_file = st.file_uploader("选择一张图片", type=["jpg", "png"]) if uploaded_file is not None: img = Image.open(uploaded_file) st.image(img, caption="上传的图片", use_column_width=True)
|
应用价值:快速部署和演示机器学习模型,用于产品展示、教学演示等场景。
4. 实时数据预测
核心功能:使用 st.number_input 获取用户输入,实时展示模型预测结果
代码片段:
1 2 3 4 5 6 7 8 9
| import streamlit as st import numpy as np
def predict(x): return np.sin(x) + np.random.normal(0, 0.1)
x = st.number_input("输入一个数值", value=0.0) y = predict(x) st.write(f"预测结果: {y:.2f}")
|
应用价值:用于实时风险评估、销售预测等场景,帮助用户快速获取预测结果。
三、表单应用类
5. 用户信息收集表单
核心功能:使用 st.form 创建交互式表单,收集用户信息
代码片段:
1 2 3 4 5 6 7 8 9
| import streamlit as st
with st.form("user_form"): name = st.text_input("姓名") email = st.text_input("邮箱") age = st.slider("年龄", 18, 100, 25) submitted = st.form_submit_button("提交") if submitted: st.success(f"感谢 {name} 的提交!")
|
应用价值:用于问卷调查、用户注册等场景,简化数据收集流程。
四、仪表盘类
6. 实时数据监控仪表盘
核心功能:使用 st.metric 展示关键指标,结合 st.balloons 实现交互效果
代码片段:
1 2 3 4 5 6 7 8 9 10 11
| import streamlit as st import time
st.title("实时数据监控") metric1 = st.metric("销售额", "¥123,456", "+12%") metric2 = st.metric("访问量", "10,000", "-5%")
if st.button("刷新数据"): with st.spinner("正在刷新..."): time.sleep(2) st.balloons()
|
应用价值:用于业务监控、运营数据分析等场景,帮助用户实时掌握关键指标变化。
五、文档生成类
7. 动态报告生成
核心功能:使用 st.markdown 动态生成报告内容,结合 st.download_button 实现报告下载
代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import streamlit as st import pandas as pd
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}) st.markdown("# 数据分析报告") st.dataframe(df)
@st.cache_data def convert_df(df): return df.to_csv(index=False).encode("utf-8")
csv = convert_df(df) st.download_button( label="下载报告", data=csv, file_name="report.csv", mime="text/csv" )
|
应用价值:用于自动生成数据分析报告、财务报表等场景,提高文档生成效率。