Streamlit学习笔记

官方中文文档

GitHub项目1

python 复制代码
git clone https://github.com/streamlit/streamlit-example.git
cd streamlit-example
pip install -r requirements.txt  
streamlit run streamlit_app.py

NumPy

Python 处理数字和数组的"基础工具"。它让Python能高效处理大量数字(比如一堆数字组成的表格或矩阵),支持快速数学计算、随机数生成等。数据分析几乎都从它开始,因为速度快、功能强。
Pandas

专门处理表格数据的"Excel 神器"。它能轻松读取 CSV、Excel 文件,清洗脏数据(去掉缺失值、重复行)、过滤、汇总、合并表格等。核心是"DataFrame"这个结构,像超级强大的电子表格,但用代码操作。
Altair

功能:通过"数据→encode→mark"语法声明式画图;自动输出 Vega-Lite JSON,前端渲染。

特点:代码量极少,默认统计最佳实践(如自动分箱、置信带);原生支持交互筛选、tooltip,但交互深度不如 Plotly。

用途:快速探索性可视化、统计报告、学术论文图。
Plotly (Python 版)

强大的互动绘图库,能做出非常漂亮、可以鼠标缩放、悬停、点击的动态图表(包括 3D 图、地图等)。适合做专业级仪表盘或报告,图表可以直接嵌入网页或 Streamlit App 里,互动性超强。
Streamlit

就是一个超级简单的工具,能让你用纯 Python 代码,几行就快速建一个互动的网页应用(比如数据仪表盘、模型演示)。不用学 HTML、CSS 或 JavaScript,写好代码运行一下,就直接变成浏览器里能用的 App。特别适合数据科学家分享成果。每出现一次 st.xxx 就对应页面一个组件
NumPy :专门管"数字砖头"------把一大堆数字整整齐齐码成一块板子,算得飞快。
Pandas :给这些砖头贴上标签、分行列,变成一张能查能改的"Excel 表"。
Altair :一句话"把这张表画成图",出来的是干净漂亮的统计图,能点能选,但不算太花哨。
Plotly :也是画图,但主打"网页级炫交互"------能放大、缩小、悬停看数字、3D 旋转,适合放仪表板。
Streamlit :把前面做的表、图、模型包在一起,不用懂网页,直接生成一个可交互的网页 App,别人打开浏览器就能用。
NumPy 生成/接收原始数组 → Pandas 清洗成 DataFrame → Altair/Plotly 出图 → Streamlit 把全套逻辑包装成可交互网页

GitHub项目2

安装 uv(windows)
powershell 复制代码
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"


或者:

克隆仓库,在项目目录中输入命令uv sync(创建项目的虚拟环境)
运行演示
  1. 首先激活项目的虚拟环境:在终端中,导航到项目目录并输入 。source .venv/bin/activate
  2. 然后输入 。streamlit run streamlit_app.py
安装plotly,一个交互式可视化库,核心特点是"可交互、可分享、零前端代码"
powershell 复制代码
pip install plotly
代码解释
python 复制代码
import streamlit as st
import pandas as pd
import plotly.express as px
  • streamlit(简称 st):负责把 Python 代码变成网页。
  • pandas(简称 pd):用来读和处理表格数据。
  • plotly.express(简称 px):快速画出漂亮的互动图表。
python 复制代码
df = pd.read_csv("state_data.csv")
  • 用 pandas 读取一个叫 state_data.csv 的文件(里面应该是美国各州每年的人口数据),存到一个叫 df 的表格(DataFrame)里。
python 复制代码
st.header("US State Demographics")
  • 在网页上显示一个大标题:"US State Demographics"(美国各州人口统计)。
python 复制代码
state = st.selectbox("State:", df["State"].unique())
  • 在网页上放一个下拉选择框,标题叫"State:"。
  • 选项是表格里所有不重复的州名(比如 California、Texas...)。
  • 用户选哪个州,state 这个变量就会变成那个州的名字。
python 复制代码
df_state = df[df["State"] == state]
  • 从完整表格 df 中,只挑出用户当前选的那个州的全部行,存到 df_state 里。
python 复制代码
fig = px.line(
    df_state, x="Year", y="Total Population", title=f"Total Population of {state}"
)
  • 用 Plotly 快速画一张折线图:
    • 数据来源是 df_state(只包含选中的州)
    • X 轴是"Year"(年份)
    • Y 轴是"Total Population"(总人口)
    • 图表标题自动变成"Total Population of California"(取决于用户选的州)
python 复制代码
st.plotly_chart(fig)
  • 把上面画好的互动折线图直接显示在网页上。用户可以用鼠标放大、缩小、悬停看具体数字,完全是专业级互动效果。
python 复制代码
st.write("All Data")
st.dataframe(df)
  • 先写个小标题"All Data"(所有数据)
  • 再把完整的原始表格 df 显示出来,可以滚动、排序、搜索。
相关推荐
潲爺2 小时前
Java-IO笔记
java·笔记·学习
zzcufo3 小时前
wincc VBS 中的 Round() 函数详解
windows·笔记
Fairy要carry3 小时前
VLLM学习-推理阶段generate
学习
糕......3 小时前
Java异常处理完全指南:从概念到自定义异常
java·开发语言·网络·学习
好奇龙猫3 小时前
【人工智能学习-AI-MIT公开课-第5. 搜索:最优、分支限界、A**】
人工智能·学习
stars-he4 小时前
FPGA学习笔记(7)以太网UDP数据报文发送电路设计(一)
笔记·网络协议·学习·fpga开发·udp
lkbhua莱克瓦244 小时前
基础-SQL-DML
开发语言·数据库·笔记·sql·mysql
峥嵘life4 小时前
2026 Android EDLA 认证相关资源网址汇总(持续更新)
android·java·学习
熬夜造bug4 小时前
LeetCode非Hot100高频题(2)——常见LeetCode手撕
学习