本教程将介绍Streamlit,一种简化数据科学家和机器学习工程师交互式构建数据可视化应用的Python库。
1. 什么是Streamlit?
Streamlit
是一种基于Python的开源库,旨在简化数据科学家和机器学习工程师构建交互式数据可视化应用的过程。它提供了一种简洁的界面,使用户可以通过少量的代码快速构建出令人满意的数据可视化应用。Streamlit
支持各种数据可视化方式,包括图表、地图和文本,同时还提供了一些布局控件,方便用户进行交互和定制。我们将从基础开始介绍Streamlit的功能,包括装饰器、布局控件、数据可视化等方面,快速入门并创建出令人满意的数据可视化应用。
2. 安装和准备环境
首先,需要确保在 Python
环境中已经安装了 Streamlit
库。可以使用 pip
或 conda
进行安装。此外,Streamlit
还依赖其他一些常见的数据科学和可视化库,如pandas、matplotlib等,也需要一并安装。
3. Hello World!第一个Streamlit应用
开始我们的第一个 Streamlit
应用之旅!我们将创建一个简单的应用,展示一个简单的文本短语,这个短语就是他喵的绕不开的 hello world
。
import streamlit as st
st.write("hello world!")
保存以上代码为app.py
,在命令行中运行streamlit run app.py
,然后在浏览器中访问生成的URL,将看到一个带有"hello world!"的网页。乖乖,有这玩意儿,谁还写html啊?
在文章开源大模型ChatGLM2-6B部署指南中也有用到streamlit的例子哦!
OK,Streamlit官网这个视频,看着蛮不错的,分享给看到这篇文章的小伙伴们。
4. Streamlit的装饰器
Streamlit的装饰器是它最有特色的功能之一。它们使编写交互式应用程序变得非常容易。通过装饰器,我们可以使用简洁的语法定义用户界面中的各种部件,例如按钮、滑块、文本输入等。让我们看一个例子:
import streamlit as st
@st.cache_data
def expensive_computation(a, b):
# 模拟一些很复杂的计算
return a * b
input_a = st.number_input("输入a", value=1)
input_b = st.number_input("输入b", value=1)
output = expensive_computation(input_a, input_b)
st.write("计算结果(:", output)
在这个例子中,我们用@st.cache
装饰器将一个函数标记为可缓存。函数expensive_computation
是一个模拟的复杂计算,通过输入的a和b返回它们的乘积。我们使用st.number_input
创建了两个数字输入框,用户可以在界面中输入a和b的值。然后,我们调用expensive_computation
函数进行计算,并将结果展示在界面上。
5. 布局控件:文本、按钮、滑动条等
Streamlit
提供了一些常见的布局控件,方便用户在应用程序中实现交互。除了上面提到的st.number_input
之外,还有很多其他的控件,如文本输入框、按钮、滑动条等,伙计们看一个例子:
import streamlit as st
name = st.text_input("请输入您的名字", value="John Doe")
occupation = st.selectbox("请选择您的职业", ("学生", "教师", "工程师"))
age = st.slider("请选择您的年龄", min_value=0, max_value=100, value=30, step=1)
st.write(f"您好,{name}!您是一位{occupation},今年{age}岁。")
在这个例子中,我们使用了st.text_input
创建了一个文本输入框,用户可以在其中输入自己的名字。使用st.selectbox
创建了一个下拉选择框,供用户选择他们的职业。使用st.slider
创建了一个滑动条,供用户选择他们的年龄。最后,我们使用st.write
来展示用户的输入。
这不是妥妥的所码即所见,所见即所得。这种没有延迟的满足感,深深的令人沉迷!
6. 数据可视化:图表和地图的绘制
除了与用户进行交互,Streamlit
还可以绘制各种图表和地图,帮助用户更好地理解和呈现数据。例如,我们可以使用st.line_chart
绘制折线图,使用st.bar_chart
绘制条形图,使用st.map
绘制地图等等。让我们看一个例子:
import streamlit as st
import pandas as pd
data = pd.DataFrame({
'年份': ['2015', '2016', '2017', '2018', '2019'],
'销售额': [100, 200, 300, 400, 500]
})
st.line_chart(data)
在这个例子中,我们使用了pd.DataFrame
创建了一个简单的数据表,包含了年份和销售额两列。然后,我们使用st.line_chart
绘制了一条折线图,展示了销售额随时间变化的情况。
一个字,强!两个字,很强!三个字,强到离谱!
7. 部署Streamlit应用
当我们完成了一个令人满意的Streamlit应用之后,我们可以将其部署到云平台或服务器上,供其他人访问。Streamlit提供了一种简单的部署方式,我们只需将应用程序代码上传到云平台上即可。
具体步骤看看这个视频,那是相当简单。
8.总结
除了上面提到的基本功能外,Streamlit还提供了一些高级功能和扩展,方便用户更好地定制和开发应用程序。例如,可以使用st.sidebar
创建一个侧边栏,用于放置常用控件和导航元素。还可以使用自定义主题、插件和组件来扩展Streamlit的功能。
Streamlit是一个极其强大且易于使用的交互式数据可视化工具。通过本教程,我们对Streamlit的基本功能和用法有了一个清晰的了解,并能够利用它来构建令人满意的数据可视化应用。不要犹豫,犹豫只会败北!动手!在实际工作中运用起来!