【Python】Streamlit库:快速构建机器学习数据分析web可视化界面
Streamlit是一个用于机器学习、数据可视化的 Python 框架。基于Streamlit我们可以快速部署自己的机器学习应用,或者构建机器学习数据分析的web可视化界面。
·
Streamlit是一个用于机器学习、数据可视化的 Python 框架。基于Streamlit我们可以快速部署自己的机器学习应用,或者构建机器学习数据分析的web可视化界面。
1. 环境准备
利用pip安装streamlit库。
pip install streamlit
安装之后在命令行输入测试
streamlit hello
如果成功安装streamlit,则会出现如下界面:

第一个是本地地址,第二个是远程地址。streamlit创建web app默认端口号是8501。打开之后:
至此,streamlit已经成功安装。
2. 常用控件
首先导入stream库。
import stream as st
2.1 文本控件
- 普通文本
st.text('This is some text.')
可视化效果如下:
- markdown文本
st.markdown('Streamlit is **_really_ cool**.')
可视化效果如下:
- 常用函数write
st.write(1234)
st.write(pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40],
}))
可视化效果如下:
2.2 数据控件
- json格式数据
st.json({
'foo': 'bar',
'baz': 'boz',
'stuff': [
'stuff 1',
'stuff 2',
'stuff 3',
'stuff 5',
],
})
可视化效果如下:
- pandas中dataframe格式数据
df = pd.DataFrame(np.random.randn(50, 20), columns=('col %d' % i for i in range(20)))
st.dataframe(df) # Same as st.write(df)
可视化效果如下:
2.3 图表控件
- 利用line_chart绘制线性图
chart_data = pd.DataFrame(np.random.randn(20, 3), columns=['a', 'b', 'c'])
st.line_chart(chart_data)
可视化效果如下:
- 利用altair_chart绘制散点图
import pandas as pd
import numpy as np
import altair as alt
df = pd.DataFrame(np.random.randn(200, 3), columns=['a', 'b', 'c'])
c = alt.Chart(df).mark_circle().encode(x='a', y='b', size='c', color='c')
st.altair_chart(c, width=-1)
可视化效果如下:
2.4 交互控件
import streamlit as st
if st.button('Say hello'):
st.write('Why hello there')
agree = st.checkbox('I agree')
option = st.selectbox(
'How would you like to be contacted?',
('Email', 'Home phone', 'Mobile phone'))
st.write('You selected:', option)
age = st.slider('How old are you?', 0, 130, 25)
st.write("I'm ", age, 'years old')
siderbar = st.sidebar()
siderbar.markdown('我是一个sidebar')ss
可视化效果如下:
3. 实践案例
创建一个简单的app.py:
import streamlit as st
# 设置全局属性
st.set_page_config(
page_title='页面标题',
page_icon='☆☆☆ ',
layout='wide'
)
# 正文
st.title('hello world')
st.markdown('> Streamlit 支持通过 st.markdown 直接渲染 markdown')
打开命令行,运行:
streamlit run app.py
这个命令会自动打开浏览器的一个标签页,该服务默认以8501为端口。
参考资料
更多推荐
所有评论(0)