简化初学者的备忘单
#初学者 #python #streamlit #cheatsheet

简化是一种广泛使用的开源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应用程序。

output1
output2

文本元素示例

  • 标题:定义页面标题。
  • 标题:使用标头格式显示文本。
  • 子标题:以子标题格式显示文本。
  • 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

output3

小部件示例

输入

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)

input

按钮

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!')

button

复选框

import streamlit as st

# check box
checked = st.checkbox('Click me')
if checked:
    st.write('You agreed the terms and conditions!')

checkbox

收音机

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')

radio

滑块

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)

slider

日期和时间

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)

date and 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")

form

地位

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)

status

图表

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)

chart

数据

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',
    ],
})

data

聊天

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")

chat

感谢您阅读本文。

感谢Gowri M Bhatt审查了内容。

如果您喜欢这篇文章,请单击“拍手”按钮ð并分享以帮助他人找到它!

可以在此处找到本教程的完整源代码,

GitHub - codemaker2015/streamlit-cheatsheet | github.com

本文也可以在媒介上获得。

这是一些有用的链接,

Get started - Streamlit Docs | docs.streamlit.io