前言:
学习使用 streamlit 自行开发一张简单的web网页,为此对streamlit官方API进行了学习与了解,在学习的过程中,将笔记记录于此,如若在使用中遇到问题,建议直接前往查看官方API,官方API链接如下:API Reference - Streamlit Docs
笔记目录
streamlit简介与主要特点
1.简介
2.主要特点
streamlit学习笔记
1.文本元素
2.数据显示元素
3.图表元素
4.输入维件(用户操作支持)
5.媒体元素
6.状态组件
7.布局和容器
8.性能
9.控制流
10.其他
一、streamlit简介与主要特点
1.简介
Streamlit是一种用于构建数据科学和机器学习应用程序的Python库。它提供了一个简单而直观的界面,使开发者能够快速创建交互式应用程序,无需深入研究前端技术。
2.主要特点
1. 简单易用:Streamlit的API设计非常简单,开发者可以使用几行代码即可创建一个应用程序。它提供了一组基本的组件,如按钮、滑块和图表,使用户能够轻松构建交互式界面。
2. 即时更新:Streamlit应用程序是实时的,即当代码发生变化时,应用程序会自动重新加载,无需手动刷新页面。这使得开发过程非常高效。
3. 自动布局:Streamlit会自动根据组件的大小和位置来布局应用程序界面,开发者无需手动指定布局信息。
4. 多种数据可视化选项:Streamlit可以轻松地集成各种数据可视化库,如Matplotlib和Seaborn,以便开发者可以直观地展示数据。
使用Streamlit,开发者可以快速构建数据科学和机器学习应用程序,并与团队和客户共享。该库的简单性和易用性使得数据科学家和机器学习工程师能够更专注于算法和模型的开发,而无需花费过多时间在界面设计和前端开发上。
二、streamlit学习笔记
1.文本元素
- st.markdown()的使用方法:st.markdown(body, unsafe_allow_html=False, *, help=None)
import streamlit as st st.markdown('Streamlit is **_really_ cool**.') st.markdown("This text is :red[colored red], and this is **:blue[colored]** and bold.") st.markdown(":green[$\sqrt{x^2+y^2}=1$] is a Pythagorean identity. :pencil:")
-
st.title():文章大标题
-
st.header():一级标题
-
st.subheader():二级标题
-
st.caption():以小字体显示文本。
-
st.latex():显示格式化为 LaTeX 的数学表达式。
-
st.text():编写固定宽度和预先格式化的文本。
-
st.code():显示具有可选语法突出显示的代码块。
- st.divider():显示全局规则。
2.数据显示元素
- st.dataframe():将数据框显示为交互式表,对数据进行排序等操作。
import streamlit as st
import pandas as pd
import numpy as np
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)
还可以传递 Pandas Styler 对象来更改 呈现的数据帧:
import streamlit as st
import pandas as pd
import numpy as np
df = pd.DataFrame(
np.random.randn(10, 20),
columns=('col %d' % i for i in range(20)))
st.dataframe(df.style.highlight_max(axis=0))
除此之外,还有许多的样式:
highlight_between:一段区间的高亮
highlight_min :最小值高亮
highlight_null:空值高亮
- st.data_editor():显示数据编辑器微件。
import streamlit as st
import pandas as pd
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},
]
)
edited_df = st.data_editor(df)
favorite_command = edited_df.loc[edited_df["rating"].idxmax()]["command"]
st.markdown(f"Your favorite command is **{favorite_command}** 🎈")
- st.column_config():列配置,包括通用列,文本列,数字列等。
3.图表元素
- st.line_chart():折线图
import streamlit as st
import pandas as pd
import numpy as np
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c'])
st.line_chart(chart_data)
- st.area_chart():面积图
- st.bar_chart():条形图
- st.map():地图(坐标表示)
还有一些图标显示,如:
- st.altair_chart()
- st.plotly_chart()
- st.bokeh_chart()
如果想要更多,请浏览官方链接:Chart elements
4.输入微件(用户操作支持)
- st.button():按钮
- st.download_button():下载按钮
- st.checkbox():复选框
- st.selectbox():下拉单选按钮
- st.radio():单选按钮
- st.mutiselect():下拉多选按钮
- st.slider():滑块微件
- st.select_slider():滑块选择条
- st.text_input():单行文本输出框
- st.text_area():多行文本输入框
- st.number_input():数值输入框,支持加减按钮
- st.data_input():日期输入
- st.time_input():时间输入
- st.camera_input():调用用户的摄像头获取一张图片
- st.color_picker():颜色选择器
5.媒体元素
- st.image():显示图片
- st.audio():显示音频
- st.video():视频
6.页面和容器
- st.sidebar():侧边栏
- st.columns():插入并排排列的容器,插入多个并排布局的多元素容器,并返回容器对象的列表。
- st.tabs():分界线
- st.expander():插入可以展开/折叠的多元素容器。
- st.container():插入多元素容器。
- st.empty():插入单元素容器。
7.状态组件
- st.process ():进度条
- st.spinner():等待过程的临时图标
- st.toast():右下角短暂显示toast信息
- st.balloons():庆祝气球
- st.snow():庆祝雪花
- st.warning():警示框
- st.error():错误框
- st.success():成功框
- st.info():信息框
- st.exception():异常显示框
8.性能
- st.cache_data():缓存数据。
- st.cache_resource():缓存资源。
- st.cache_data.clear():清除
9.控制流
- st.stop():立即停止执行且不会在 st.stop() 之后运行任何语句。
- st.experimental_rerun():立即重新运行脚本,调用 st.experimental_rerun() 时,脚本将停止 - 否 将运行更多语句,并且脚本将排队重新运行 从顶部,如果在 Streamlit 外部调用此函数,将引发 例外。
- st.form_submit_button():在form中使用,提交表按钮。
- st.form():创建一个表单,该表单使用“提交”按钮将元素批处理在一起。
10.其他
- 多页应用:创建入口点文,我们能够自定义页面标题和图标 - 因为它显示在浏览器选项卡中,带有.我们也可以为每个页面这样做!使用st.set_page_config,page_title:页面标题,page_icon:页面图标。
import streamlit as st
st.set_page_config(
page_title="Hello",
page_icon="👋",
)
具体使用还请去官网查看:Create a multipage app - Streamlit Docs