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 显示出来,可以滚动、排序、搜索。
相关推荐
风之子npu31 分钟前
CPU基础知识(1)
笔记
JeffDingAI38 分钟前
【Datawhale学习笔记】预训练模型实战
笔记·学习
来生硬件工程师41 分钟前
【PCB设计笔记】PCB布局时,如何快速互换器件位置?(Altium Designer 25)
笔记
ljt27249606611 小时前
Flutter笔记--ValueNotifier
笔记·flutter
GISer_Jing1 小时前
AI Coding学习——dw|ali(持续更新)
人工智能·学习·prompt·aigc
振华说技能1 小时前
MasterCAM车铣复合都学哪些内容!
学习
世人万千丶1 小时前
鸿蒙跨端框架 Flutter 学习 Day 4:程序生存法则——异常捕获与异步错误处理的熔断艺术
学习·flutter·华为·harmonyos·鸿蒙
阿豪只会阿巴1 小时前
项目心得——发布者和订阅者问题解决思路
linux·开发语言·笔记·python·ubuntu·ros2
军军君011 小时前
Three.js基础功能学习十二:常量与核心
前端·javascript·学习·3d·threejs·three·三维
Hello_Embed1 小时前
RS485 双串口通信 + LCD 实时显示(中断版)
c语言·笔记·单片机·学习·操作系统·嵌入式