1 streamlit
## 简介
## 什么是streamlit
Streamlit是一个免费的开源框架,用于快速构建和共享漂亮的数据科学Web应用程序。
它是一个基于Python的库,专为机器学习工程师设计。数据分析工程师不是网络开发人员,
他们对花几周时间学习使用这些框架来构建网络应用程序不感兴趣。
相反,他们需要一个更容易学习和使用的工具,只要它可以显示数据并收集分析/建模所需的参数。
Streamlit允许您仅用几行代码创建一个外观惊艳的应用程序。
#### 数据科学家为何要使用Streamlit?
Streamlit最大的好处是,您甚至不需要了解Web开发的基础知识就可以开始或创建您的第一个Web应用程序。
因此,如果你是一个对数据科学感兴趣的人,你想轻松、快速地部署你的模型,并且只需要几行代码,
Streamlit是一个很好的选择。
优势:
- 不需要具备前端知识即可应用streamlit。
- 学习成本极低
- 你不需要花费几天或几个月的时间来创建一个Web应用,你可以在几个小时甚至几分钟内创建一个非常漂亮的机器学习或数据科学应用。
- 它兼容大多数Python库
- 例如panda、matplotlib、seaborn、plotly、Keras、PyTorch等。
1.2 环境安装
pip install streamlit
#测试安装是否正常:
streamlit hello
1.2 程序运行
streamlit run xxx.py
1.3 具体操作
1.3.1 write()函数
可以通过该函数向看板上输出显示指定内容
import pandas as pd
import streamlit as st
st.write("1. write()函数基本操作")
st.write(pd.DataFrame({
'第一列': [1,2,3,4,5],
'第二列': [6,7,8,9,10]}
))
1.3.2 滑块组件slider
“slider"的中文意思是"滑块”。它是一种用户界面元素,通常用于选择一个数值范围或从给定选项中选择一个值。滑块的外观通常是一个可拖动的滑块,用户可以通过移动滑块来选择所需的值。滑块可以在许多应用程序和网页中使用,例如调整音量、选择年龄范围或设置某个参数的值。
import streamlit as st
st.write("st.slider()滑块")
#slider参数为滑块自定义名称,返回值为滑动到的数值
num = st.slider("num")
st.write(num, "squred is", num*num)
1.3.3 本框操作text_input
import streamlit as st
st.write("文本框操作")
#文本框输入,回车结束
st.text_input("your name", key="name")
st.text_input("your age", key="age")
# 显示输入的值
st.write(st.session_state.name,st.session_state.age)
1.3.4 多选框checkbox
import streamlit as st
import pandas as pd
import numpy as np
st.write("checkbox()多选框")
# 点击checkbox后返回True,未点击为False
ex1 = st.checkbox('显示/不显示 表格')
if ex1:
df = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c']
)
st.write(df)
ex2 = st.checkbox('显示/不显示 滑块')
if ex2:
x = st.slider('x')
1.3.5 下拉框selectbox
import streamlit as st
#返回值为选中的内容信息
option = st.selectbox(
label='请选择省份信息:',
options=['河北','山东','河南','吉林']
)
st.write("您选择的是: ", option)
1.3.6 侧边栏sidebar
import streamlit as st
#侧边栏下拉框
add_selectbox = st.sidebar.selectbox(
label="通讯方式选项",
options=('微信','QQ','手机','邮件')
)
#获取下拉选项
st.write("下拉选项: ", add_selectbox)
#侧边栏滑块
add_slider = st.sidebar.slider(
label="选择一个范围的值",
min_value=0.0, max_value=100.0, value=(25.0, 75.0)
)
#获取滑块的值
st.write("值的范围: ", add_slider)
1.3.7 单选按钮radio
import streamlit as st
#columns参数表示列数
left_column, right_column = st.columns(2)
# 左边列设置
with left_column:
#返回值为选中的选项值
chosen = st.radio(
label='电脑品牌',
options=('苹果','华为','小米')
)
st.write(f'你选择的品牌是: {
chosen}')
# 右边列设置
with right_column:
# 返回值为选中的选项值
chosen = st.radio(
label='手机品牌',
options=('苹果','华为','小米')
)
st.write(f'你选择的品牌是: {
chosen}')
1.3.8 进度条progress
import streamlit as st
import time
st.write("模拟长时间的计算...")
# 创建一个动态显示数据的容器,用于动态显示进度条的进度数值
value = st.empty()
#创建进度条,进度条初始值为0
bar = st.progress(0)
for i in range(100):
#这是动态显示的数值
value.text(f'Iteration {
i+1}')
# 更新进度条
bar.progress(i+1)
time.sleep(0.1)
st.write('运行结束!')
1.3.9 文件上传
上传penguins.csv文件,然后选择不同的两个企鹅特征,用散点图观察其分布形式。
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
st.write('上传penguins.csv文件