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为端口。

参考资料

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐