在当今数据驱动的时代,数据科学家和机器学习工程师常常面临一个挑战:如何将复杂的数据分析和模型成果,以直观、交互且易于理解的方式展示给更广泛的受众。传统的 Web 开发技术虽然强大,但对于专注于数据处理的专业人员来说,掌握 HTML、CSS、JavaScript 往往意味着额外的负担。
Streamlit 的出现为这一困境提供了完美的解决方案。它是一个开源的 Python 框架,旨在让数据科学家能够快速创建交互式 Web 应用程序,无需深厚的前端背景。只需使用熟悉的 Python 语言,就能将数据分析脚本转化为功能齐全、美观大方的 Web 应用,实现数据可视化、用户交互以及模型部署等多种功能。
Streamlit 基础入门
安装 Streamlit
如果你已经安装了 Python 和 pip,在命令行中输入以下命令即可完成安装:
pip install streamlit
安装完成后,可以通过运行 streamlit hello 来验证。执行后,Streamlit 会启动一个示例应用程序并在默认浏览器中打开,这能帮你初步感受其基本功能和特性。
第一个 Streamlit 应用
创建一个名为 hello_streamlit.py 的文件,输入以下代码:
import streamlit as st
st.title('Hello, Streamlit!')
st.write('This is my first Streamlit app.')
保存后,在命令行进入该文件所在目录并执行:
streamlit run hello_streamlit.py
Streamlit 会启动本地服务器并自动打开页面。每次修改代码并保存,应用会自动实时更新显示,无需手动重启,这种即时反馈机制极大地提高了开发效率。
运行机制
当你执行 streamlit run 时,Streamlit 启动本地服务器读取 Python 脚本。它根据代码中定义的元素(标题、图表、组件等),在浏览器端生成相应的界面。其核心特性是实时更新:持续监控脚本文件变化,一旦检测到修改立即重新运行并将新界面推送到浏览器。开发者无需关心底层通信细节,只需专注于 Python 逻辑。
Streamlit 核心功能详解
文本与标题展示
除了基础的 st.title() 和 st.write(),还有多种方式呈现文本:
- st.header():用于一级标题,划分主要部分。
- st.subheader():用于二级标题,细分内容。
- st.markdown():支持 Markdown 语法,可轻松实现加粗、斜体、链接和图片嵌入。
例如,使用 Markdown 创建列表:
st.markdown('### This is a Markdown - style header')
st.markdown('* This is an item in an unordered list')
st.markdown('1. This is an item in an ordered list')
数据可视化
Streamlit 支持与 Matplotlib、Seaborn、Plotly、Altair 等库无缝集成。
Matplotlib 示例:
import streamlit as st
matplotlib.pyplot plt
numpy np
x = np.linspace(, , )
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title()
st.pyplot(fig)


