Streamlit使您可以轻松地可视化,修改和共享数据。API参考 按活动类型进行组织,例如显示数据或优化性能。 每个部分都包括与活动类型相关的方法,包括示例。
Magic commands
魔术命令是 Streamlit 中的一项功能,可让您仅需很少的按键就可以将 Markdown 和数据写入应用程序。这是一个例子:
# Draw a title and some text to the app:
'''
# This is the document title
This is some _markdown_.
'''
df = pd.DataFrame({'col1': [1,2,3]})
df # <-- Draw the dataframe
x = 10
'x', x # <-- Draw the string 'x' and then the value of x
每当 Streamlit 在自己的行上看到变量或文字值时,它都会使用 st.write
(稍后将对此进行介绍)自动将其写入您的应用程序。
而且,魔术足够聪明,可以忽略文档字符串。 也就是说,它将忽略文件和函数顶部的字符串。
如果您希望更明确地调用 Streamlit
命令,则始终可以使用以下设置在 ~/.streamlit/config.toml
中关闭魔术:
[runner]
magicEnabled = false
IMPORTANT:Right now, Magic only works in the main Python app file, not in imported files. See GitHub issue #288 for a discussion of the issues.
显示文字
Streamlit 应用程序通常以调用 st.title
开头以设置应用程序的标题。之后,您可以使用 2 个标题级别: st.header
和 st.subheader
。
使用 st.text
输入纯文本,使用 st.markdown
输入 Markdown。我们还提供了一个名为 st.write
的“瑞士军刀”命令,该命令接受多个参数和多种数据类型。并且如上所述,您也可以使用魔术命令代替 st.write
。编写公式,可以使用 st.latex
。
带有颜色的 Text 和 Error 消息
import streamlit as st
st.success("Successful")
st.info("Information!")
st.warning("This is a warning")
st.error("This is an error Danger")
st.exception(NameError('name three not defined'))
输出:
获得 Python 帮助
st.help(range)
输出 range
的帮助信息:
Widget: Checkbox,Selectbox,Radio button
# Checkbox
if st.checkbox("Show/Hide"):
st.text("Showing or Hiding Widget")
# Radio Buttons
status = st.radio("What is your status",("Active","Inactive"))
if status == 'Active':
st.success("You are Active")
else:
st.warning("Inactive, Activate")
# SelectBox
occupation = st.selectbox("Your Occupation",["Programmer","DataScientist","Doctor","Businessman"])
st.write("You selected this option ",occupation)
# MultiSelect
location = st.multiselect("Where do you work?",("London","New York","Accra","Kiev","Nepal"))
st.write("You selected",len(location),"locations")
# Slider
level = st.slider("What is your level",1,5)
# Buttons
st.button("Simple Button")
if st.button("About"):
st.text("Streamlit is Cool")
输出:
与用户交互
这是最终用户最投入的方面。您如何接收用户输入并对其进行处理。您可以使用 st.text_input()
来实现这种功能。
import datetime
# Receiving User Text Input
firstname = st.text_input("Enter Your Firstname", "Type Here..")
if st.button("Submit"):
result = firstname.title()
st.success(result)
# Text Area
message = st.text_area("Enter Your message", "Type Here..")
if st.button("Submit2"):
result = message.title()
st.success(result)
# Date Input
today = st.date_input("Today is", datetime.datetime.now())
# Time
the_time = st.time_input("The time is", datetime.time())
输出:
处理媒体文件,例如图像,音频,视频
# Images
from PIL import Image
img = Image.open("example.jpeg")
st.image(img,width=300,caption="Simple Image")
# Videos
vid_file = open("example.mp4","rb").read()
# vid_bytes = vid_file.read()
st.video(vid_file)
# Audio
audio_file = open("examplemusic.mp3","rb").read()
st.audio(audio_file,format='audio/mp3')
显示原始代码
如果要显示原始的预格式化代码,则可以使用 st.code
或 st.echo
:
# Displaying Raw Code
st.text("Display Raw Code")
st.code("import numpy as np")
# Display Raw Code
with st.echo():
# This will also show as a comment
import pandas as pd
df = pd.DataFrame()
效果:
显示 JSON
# Displaying JSON
st.text("Display JSON")
st.json({'name':"Jesse",'gender':"male"})
显示进度栏,微调框和气球
# Progress Bar
import time
my_bar = st.progress(0)
for p in range(10):
my_bar.progress(p + 1)
# Spinner
with st.spinner("Waiting .."):
time.sleep(5)
st.success("Finished!")
# Balloons
st.balloons()
完成后显示气球
网友评论