20201224:streamlit初识

目录

1、streamlit是什么

2、streamlit安装

3、查看本地构建的web应用程序

4、重要的插件

文本输入

滑块

复选框

下拉框插件

多选插件

缓存

侧边栏

Markdown标记语言


 

1、streamlit是什么

 
Streamlit是一个开源的Python库,是 机器学习工程师专用的应用程序框架, 第一个专门针对机器学习和数据科学团队的应用开发框架 利用Streamlit可以快速构建机器学习应用的用户界面。

 

2、streamlit安装

  • 安装:pip install streamlit

  • 查看是否安装成功:streamlit hello

  • 如果安装报错:AttributeError: module ‘google.protobuf.descriptor‘ has no attribute ‘_internal_create_key‘ 则升级protobuf即可。 pip install --upgrade protobuf

3、查看本地构建的web应用程序

  • step1:streamlit run ****.py

  • step2:浏览器中访问本地URL:localhost:8501

4、重要的插件

  • 文本输入

import streamlit as st
url = st.text_input('Enter URL')
st.write('The Entered URL is', url)
  • 滑块

import streamlit as st
x = st.slider('x')
st.write(x, 'squared is', x * x)
  • 复选框

隐藏或显示/隐藏程序中的特定区域,或者设置函数的布尔参数值。st.checkbox() 需要一个参数,即插件标签。在该应用程序中,复选框会用来切换条件语句。

import streamlit as st
import pandas as pd
import numpy as np

df = pd.read_csv("sample_submission.csv")

if st.checkbox('Show dataframe'):

st.write(df)
  • 下拉框插件

通过st.selectbox可以在一系列选项或列表中进行选择。常见的用法是将其作为下拉项然后从名单中挑选值。

import streamlit as st
import pandas as pd
import numpy as np

df = pd.read_csv("sample_submission.csv")

option = st.selectbox('Which Club do you like best?',df['ID'].unique())

'You selected: ', option
  • 多选插件

 也可以用下拉框内的多个值。这里讲的是使用 st.multiselect在变量选选中获取多个值作为列表。

import streamlit as st
import pandas as pd
import numpy as np


df = pd.read_csv("sample_submission.csv")

options = st.multiselect('What are your favorite clubs?', df['ID'].unique())

st.write('You selected:', options)
  • 缓存

在Streamlit中通过st.cache装饰器函数实现缓存功能。用Streamlit的缓存装饰器标记函数时,无论这个函数是否执行,都会检查输入的参数值(由该函数处理的)。如果Streamlit之前没有处理过这些数据,它会调用函数并将运算结果存到本地缓存中。下次再调用函数时,倘若还是这些参数,Streamlit就会完全跳过这一块的函数执行,直接用缓存器里的结果数据。

import streamlit as st
import pandas as pd
import numpy as np
import plotly_express as px
df = st.cache(pd.read_csv)("sample_submission.csv")


@st.cache
def complex_func(a,b):
    complex_func(a,b)
  • 侧边栏

把插件移动到侧边栏内,比如像Rshiny仪表盘,只需在插件代码中添加 st.sidebar即可。

import streamlit as st
import pandas as pd
import numpy as np
import plotly_express as px


@st.cache
def complex_func(a,b):
    complex_func(a,b)

df = st.cache(pd.read_csv)("sample_submission .csv")

clubs = st.sidebar.multiselect('Show Player for clubs?', df['ID'].unique())

nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['CLASS'].unique())

new_df = df[(df['ID'].isin(clubs)) & (df['CLASS'].isin(nationalities))]

st.write(new_df)

fig = px.scatter(new_df, x ='ID',y='CLASS',color='ID')

st.plotly_chart(fig)
  • Markdown标记语言

在Streamlit程序中应用Markdown,最合适的就是调用Magic指令。通过该指令,用户做标记语言就会像写评论一样简单。用户也可以使用指令st.markdown。

import streamlit as st
import pandas as pd
import numpy as np
import plotly_express as px

df = st.cache(pd.read_csv)("sample_submission.csv")
clubs = st.sidebar.multiselect('Show Player for clubs?', df['ID'].unique())

nationalities = st.sidebar.multiselect('Show Player from Nationalities?',         df['CLASS'].unique())

new_df = df[(df['ID'].isin(clubs)) & (df['CLASS'].isin(nationalities))]

st.write(new_df)

fig = px.scatter(new_df, x ='ID',y='CLASS',color='ID')

st.plotly_chart(fig)

你可能感兴趣的:(WEB应用)