当前位置: 首页 > java >正文

Streamlit 笔记

Streamlit 是一个开源的 Python 库,用于快速构建和共享数据应用程序。它可以让开发者用简洁的代码将机器学习模型、数据可视化、分析工具等快速构建为交互式的 Web 应用。

Streamlit 的特点

  1. 简单易用:使用 Python 编写即可构建功能强大的 Web 应用。
  2. 实时更新:Streamlit 应用会随着代码的修改自动更新,无需手动刷新浏览器。
  3. 支持丰富的组件:包括表单、按钮、文本框、图表、图片等多种交互组件。
  4. 集成机器学习模型:支持直接加载和展示机器学习模型的输出,用户可以通过交互操作改变输入,并实时看到模型预测结果。

主要功能

  • 可视化数据:支持通过 Matplotlib、Plotly、Altair 等库展示交互式图表。
  • 文件上传:支持用户上传文件进行处理。
  • 组件支持:如按钮、滑动条、文本框、选择框等。
  • 实时交互:通过简单的操作,可以实现用户输入与模型预测的互动。

Streamlit 安装

可以使用 pip 直接安装:

pip install streamlit

注意如果你安装的时候出现下面的错误
error: command ‘cmake’ failed: No such file or directory
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pyarrow
Failed to build pyarrow

ERROR: Failed to build installable wheels for some pyproject.toml based projects (pyarrow)

解决方法

  • 首先安装cmake
conda install cmake
  • 然后安装pyarrow
conda install pyarrow

注意我这里是使用conda进行安装的,如果你在mac上使用brew安装可以试一下是否可以成功,但是下面的pyarrow如果使用pip安装失败,请使用conda进行安装

安装这些之后再执行pip install streamlit就可以成功了

基本用法

  1. 创建一个简单的 Streamlit 应用
import streamlit as st# 设置网页标题
st.title("Streamlit 示例应用")# 在网页中添加一个文本框让用户输入数据
user_input = st.text_input("请输入一些文本:")# 添加一个按钮,用户点击时执行某个动作
if st.button("显示输入的文本"):# 显示用户输入的文本st.write("您输入的文本是:", user_input)# 添加一个简单的数字输入框,用户可以选择数字
number_input = st.number_input("请选择一个数字", min_value=0, max_value=100)# 显示数字输入框的结果
st.write(f"你选择的数字是:{number_input}")
  1. 运行应用

将上面的代码保存为 app.py,然后在命令行运行:

streamlit run app.py#  You can now view your Streamlit app in your browser.#  Local URL: http://localhost:8501
#  Network URL: http://10.4.101.18:8501#  For better performance, install the Watchdog module:#  $ xcode-select --install
#  $ pip install watchdog

运行上面会会弹出下面的页面
在这里插入图片描述

此时,浏览器会自动打开显示你的应用。每次修改代码并保存后,页面会自动更新,显示最新的变化。

常用组件

  1. 按钮(Button)

    if st.button('点击我'):st.write('按钮被点击了!')
    
  2. 滑动条(Slider)

    number = st.slider('选择一个数字', 0, 100, 25)
    st.write(f'你选择的数字是: {number}')
    
  3. 选择框(Selectbox)

    option = st.selectbox('选择一个选项', ['苹果', '香蕉', '橙子'])
    st.write(f'你选择的选项是: {option}')
    
  4. 文件上传(File uploader)

    uploaded_file = st.file_uploader("上传一个文件")
    if uploaded_file is not None:st.write("文件已上传")
    
  5. 文本输入(Text Input)

    user_input = st.text_input("请输入文本")
    st.write(f"你输入的文本是: {user_input}")
    

使用 Streamlit 构建一个交互式数据可视化应用

假设你有一个简单的数据集并想用 Streamlit 来展示它。以下是一个展示 Pandas 数据框的例子:

import streamlit as st
import pandas as pd# 创建一个简单的 DataFrame
data = {'名称': ['苹果', '香蕉', '橙子'],'数量': [10, 20, 30],'价格': [1.2, 0.5, 0.8]
}
df = pd.DataFrame(data)# 显示 DataFrame
st.write("水果信息", df)# 使用图表展示数据
st.bar_chart(df.set_index('名称')['数量'])

在这里插入图片描述

Streamlit 的高级功能

  1. 缓存
    使用 st.cache 可以缓存函数的结果,避免重复计算,提高性能:

    @st.cache
    def load_data():return pd.read_csv('large_dataset.csv')
    
  2. 多页应用
    Streamlit 支持在应用中创建多个页面,通过 st.selectboxst.radio 来选择不同的页面内容。

  3. 自定义组件
    如果需要更复杂的组件,可以使用 streamlit.components 来创建自定义的 HTML、JavaScript 和 CSS 组件。

http://www.xdnf.cn/news/14033.html

相关文章:

  • Google Drive·实现共享文件本地访问与编辑
  • sdk添加包,更新文件系统--万象奥科RK3506
  • 基于数字孪生的风光储一体化园区智能化管理解决方案
  • C++进阶—C++中的继承
  • 在云算力上使用Nginx对Gradio外链进行加速的方法
  • 趣解TensorFlow之入门篇
  • 家政维修平台实战25:工人接单
  • Could not initialize Logback logging from classpath:logback-spring.xml
  • PostgreSQL作为向量数据库
  • 论索引影响性能的一面④ 索引失踪之谜【上】
  • docker部署DNS服务并带有图形界面管理——筑梦之路
  • 【碎碎念】60秒! 卡牌游戏 60 Seconds! [特殊字符] 桌游版《求生60秒》
  • 人工智能100问☞第47问:为啥AI需要“反向传播”?
  • Spring Bean
  • aardio 继承与多态
  • 智能出入库管理系统:自动化管控平台
  • 我是如何用 Agent 编程的
  • Day01_C数据结构
  • 普通属性 vs ref 包装属性
  • C#迭代器
  • xa_get_mark 简介
  • PyCharm 配置python解释器
  • 跨网软件如何重塑能源行业?推荐高效协同的跨网传输方案
  • 在python中获取符合特定模式的文件
  • 《Java开发工具全解析:从基础到前沿》
  • MySQL数据库死锁全解析:发生场景、定位方法、解决方案及最佳实践
  • 京东率先开启“3D信息流时代” 让购物更有趣
  • TortoiseSVN 下载指定版本客户端及对应翻译(汉化)包
  • ABP vNext + OpenIddict:自定义 OAuth2/OpenID Connect 认证策略
  • 搭建前端项目 Vue+element UI引入 步骤 (超详细)