简化是一种广泛使用的开源Python框架,可促进用于机器学习和数据科学的Web应用程序的创建和部署。它通过允许用户像编写Python代码一样构建应用程序来实现一个无缝开发和查看结果的过程。编码和Web应用程序可视化之间的这种交互式循环是一个独特的功能,使应用程序开发和结果探索有效而轻松。
入门
目录
- 简化方法
- 安装
- 从Hello World开始
- 文本元素示例
- 小部件示例
- 输入
- 按钮
- 复选框
- 广播
- 滑块
- 日期和时间
- 表格
- 状态
- 图表
- 数据
- 聊天
简化方法
数据显示:
-
st.write()
函数使您根据要求展示各种数据格式。 -
st.metric()
函数支持您展示一个单数度量。 -
st.table()
函数用于渲染表格信息。 -
st.dataframe()
功能设计为优雅地展示pandas dataframes。 -
st.image()
函数为视觉内容提供了无缝的图像显示。 -
st.audio()
功能负责音频文件播放。标题和文字样式:
-
st.subheader()
函数是在您的应用程序中生成子头的宝贵工具。 -
st.markdown()
函数用于启用Markdown-Formatted内容的无缝集成。 -
st.latex()
功能是表达数学方程的强大资产。用户互动:
要将您的Web应用程序注入交互式元素,Sparlit提供了一系列小部件。
-
st.checkbox()
函数用于合并复选框。 -
st.button()
函数用于按钮。 -
st.selectbox()
功能有助于下拉菜单实现。 -
st.multiselect()
功能旨在满足多选择下拉次数要求。 -
st.file_uploader()
函数用于处理文件上传。进度跟踪:
精简提供用于指示进度的功能。
-
st.progress()
函数用于创建动态进度栏。 -
st.spinner()
功能允许用户合并旋转器动画来表示正在进行的过程。侧边栏和形式集成:
简化的多功能功能扩展到合并侧边栏以适应补充功能。
-
st.sidebar()
函数用于将元素无缝整合到辅助空间中。 -
st.form()
函数为用户交互建立了一个框架。自定义HTML和CSS集成:
简化提供嵌入自定义HTML和CSS的规定,以量身定制您的Web应用程序的外观和行为。
-
st.markdown()
函数启用降价样式。 -
st.write()
函数促进了定制html组件的集成到您的应用程序中。
安装
为了开始,初始步骤涉及安装简化。确保您已经在计算机中安装了Python 3.7至3.10,以及您首选的Python集成开发环境(IDE)。使用这些先决条件,打开您的终端并执行以下命令以安装简化。
- 通过执行以下命令来创建和激活虚拟环境。
python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows
- 使用PIP安装简化库。
pip install streamlit
从Hello World开始
通过深入到该平台提供的预先构建的“ Hello World”应用程序来启动您的简化体验。要确认成功的安装,请在终端中执行以下命令以测试其功能:
streamlit hello
您可以在Web浏览器中的新标签中看到简化的Hello World应用程序。
文本元素示例
- 标题:定义页面标题。
- 标题:使用标头格式显示文本。
- 子标题:以子标题格式显示文本。
- Markdown :将Markdown格式应用于文本。
- 代码:将文本显示为代码,具有合适的语法突出显示。
-
乳胶:利用乳胶来呈现数学方程。
创建一个名为
text_example.py
的文件,然后在其中添加以下代码。
import streamlit as st
# set the app's title
st.title("Title in Streamlit")
# header
st.header("Header in Streamlit")
# subheader
st.subheader("Subheader in Streamlit")
# markdown
# display text in bold formatting
st.markdown("**Streamlit** is a widely used open-source Python framework, facilitates the creation and deployment of web apps for Machine Learning and Data Science.")
# display text in italic formatting
st.markdown("Visit [Streamlit](https://docs.streamlit.io) to learn more about Streamlit.")
# code block
code = '''
def add(a, b):
print("a+b = ", a+b)
'''
st.code(code, language='python')
# latex
st.latex('''
(a+b)^2 = a^2 + b^2 + 2*a*b
''')
使用以下命令运行文本示例。
streamlit run text_example.py
小部件示例
输入
import streamlit as st
# text input
name = st.text_input("Enter your name", "")
st.write("Your name is ", name)
age = st.number_input(label="Enter your age")
st.write("Your age is ", age)
address = st.text_area("Enter your address", "")
st.write("Your address is ", address)
按钮
import streamlit as st
#button
if st.button('Click me', help="Click to see the text change"):
st.write('Welcome to Streamlit!')
else:
st.write('Hi there!')
复选框
import streamlit as st
# check box
checked = st.checkbox('Click me')
if checked:
st.write('You agreed the terms and conditions!')
收音机
import streamlit as st
# radio button
lang = st.radio(
"What's your favorite programming language?",
('C','C++', 'Java','Python'))
if lang == 'C':
st.write('You selected C')
elif lang == 'C++':
st.write('You selected C++')
elif lang == 'C++':
st.write('You selected Java')
else:
st.write('You selected Python')
滑块
import streamlit as st
# slider
age = st.slider('Please enter your age',
min_value=0, max_value=100, value=10)
st.write("Your age is ", age)
日期和时间
import datetime
import streamlit as st
date = st.date_input("When's your birthday", datetime.date(2000, 1, 1), datetime.date(1990, 1, 1), datetime.datetime.now())
st.write("Your birthday is ", date)
time = st.time_input("Which is your birth time", datetime.time(0, 0))
st.write("Your birth time is ", time)
形式
import streamlit as st
with st.form("user_form"):
st.header("User Registration")
name = st.text_input("Enter your name", "")
age = st.slider("Enter your age")
gender = st.radio("Select your gender", ('Male', 'Female'))
terms = st.checkbox("Accept terms and conditions")
# Every form must have a submit button.
submitted = st.form_submit_button("Submit")
if submitted:
if terms:
st.write("Name: ", name, ", Age: ", age, ", Gender: ", gender)
else:
st.write("Accept terms and conditions")
st.write("Thanks for visiting")
地位
import streamlit as st
import time
# progress
progress_text = "Operation in progress. Please wait."
my_bar = st.progress(0, text=progress_text)
for percent_complete in range(100):
time.sleep(0.1)
my_bar.progress(percent_complete + 1, text=progress_text)
# spinner
with st.spinner('Wait for it...'):
time.sleep(5)
st.success('Done!')
# messages
st.toast('Your edited image was saved!', icon='😍')
st.error('This is an error', icon="🚨")
st.info('This is a purely informational message', icon="ℹ️")
st.warning('This is a warning', icon="⚠️")
st.success('This is a success message!', icon="✅")
e = RuntimeError('This is an exception of type RuntimeError')
st.exception(e)
图表
import streamlit as st
import pandas as pd
import numpy as np
# chart
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c'])
st.line_chart(chart_data)
st.bar_chart(chart_data)
st.area_chart(chart_data)
df = pd.DataFrame(
np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
columns=['lat', 'lon'])
st.map(df)
数据
import streamlit as st
import pandas as pd
import numpy as np
# data frame
st.subheader("Data Frame")
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)
# table
st.subheader("Data Table")
df = pd.DataFrame(
np.random.randn(10, 5),
columns=('col %d' % i for i in range(5)))
st.table(df)
# data editor
st.subheader("Data Editor")
df = pd.DataFrame(
[
{"command": "st.selectbox", "rating": 4, "is_widget": True},
{"command": "st.balloons", "rating": 5, "is_widget": False},
{"command": "st.time_input", "rating": 3, "is_widget": True},
]
)
st.data_editor(df)
# metric
st.subheader("Data Metric")
st.metric(label="Temperature", value="70 °F", delta="1.2 °F")
col1, col2, col3 = st.columns(3)
col1.metric("Temperature", "70 °F", "1.2 °F")
col2.metric("Wind", "9 mph", "-8%")
col3.metric("Humidity", "86%", "4%")
# json
st.subheader("Data JSON")
st.json({
'foo': 'bar',
'baz': 'boz',
'stuff': [
'stuff 1',
'stuff 2',
'stuff 3',
'stuff 5',
],
})
聊天
import streamlit as st
import numpy as np
prompt = st.chat_input("Enter the chart type (bar, area, line)")
print(prompt)
if prompt == "bar":
with st.chat_message("user"):
st.write("Bar Chart Demo 👋")
st.bar_chart(np.random.randn(30, 3))
elif prompt == "area":
with st.chat_message("user"):
st.write("Area Chat Demo 👋")
st.area_chart(np.random.randn(30, 3))
elif prompt == "line":
with st.chat_message("user"):
st.write("Line Chat Demo 👋")
st.line_chart(np.random.randn(30, 3))
elif prompt is not None:
with st.chat_message("user"):
st.write("Wrong chart type")
感谢您阅读本文。
感谢Gowri M Bhatt审查了内容。
如果您喜欢这篇文章,请单击“拍手”按钮ð并分享以帮助他人找到它!
可以在此处找到本教程的完整源代码,
GitHub - codemaker2015/streamlit-cheatsheet | github.com
本文也可以在媒介上获得。
这是一些有用的链接,