美文网首页
Streamlit API 介绍

Streamlit API 介绍

作者: 水之心 | 来源:发表于2020-11-28 12:50 被阅读0次

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.headerst.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.codest.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()
完成后显示气球

相关文章

网友评论

      本文标题:Streamlit API 介绍

      本文链接:https://www.haomeiwen.com/subject/yrjniktx.html