『玩转Streamlit』--环境配置
尽管Streamlit的使用非常直观,但正确的环境配置对于充分发挥其潜力仍然至关重要。
本篇将介绍如何从头开始配置Streamlit环境,以及Streamlit开发过程中常用的几个命令。
最后通过一个简单的示例演示开发Streamlit应用的过程。
1. 安装
Streamlit是纯Python的框架,只依赖Python环境,
目前最新的Streamlit v1.39版本,需要Python3.8及以上的版本。
Streamlit已经发布到pypi,使用pip安装非常简单。
pip install streamlit
安装完成后,验证是否安装成功使用下面的命令:
streamlit hello
这个Streamlit中自带的示例工程,如果安装成功,执行之后会自动打开浏览器,
在http://localhost:8501/显示示例工程。

一共有4个Demo,可以从左半边的菜单中点开感受下Streamlit的魅力。
2. 常用子命令
Streamlit子命令不多,通过--help参数可以查看。
$ streamlit --help
Usage: streamlit [OPTIONS] COMMAND [ARGS]...
Try out a demo with:
$ streamlit hello
Or use the line below to run your own script:
$ streamlit run your_script.py
Options:
--log_level [error|warning|info|debug]
--version Show the version and exit.
--help Show this message and exit.
Commands:
activate Activate Streamlit by entering your email.
cache Manage the Streamlit cache.
config Manage Streamlit's config settings.
docs Show help in browser.
hello Runs the Hello World script.
help Print this help message.
run Run a Python script, piping stderr to Streamlit.
version Print Streamlit's version number.
最常用的是run子命令,这是用来执行Streamlit App的,run子命令本身也有很多的参数,
比如,App的IP地址,端口,主题,日志,自动重载脚本等等。
下面的命令可以查看run子命令的所有参数。
$ streamlit run --help
此外,config子命令可以快速查看当前对Streamlit的所有配置。
$ streamlit config show
cache子命令可以用来快速清理缓存。
$ streamlit cache clear
开发过程中,用的较多的就是上面三个子命令。
3. 第一个App
最后,我们用Streamlit来做一个简单的数据分析的应用,以此体会下它其强大之处。
3.1. 创建测试数据
首先创建一些测试数据,通过pandas和numpy创建20条时间序列数据。
# 创建时间序列测试数据
A = np.random.randint(1, 80, size=(20, 1))
B = np.random.randint(20, 100, size=(20, 1))
df = pd.DataFrame()
df.index = pd.date_range("2024/10/01", periods=20)
df["A"] = A
df["B"] = B

A列和B列是随机生成的数据,每次运行都会改变。
3.2. 用表格数据
接下来就是Streamlit登场的时候了,页面上显示pandas的DataFrame数据很简单,就一行代码。
# 显示数据
st.table(df)
浏览器访问:http://localhost:8501/

可以加个标题,稍微美化一下。
st.header("第一个APP")
st.divider() # 一条分割线

3.3. 用折线图显示数据
Streamlit用表格显示数据只要一行代码,同样,用折线图显示数据也只要一行代码。
# 显示折线图
st.line_chart(df)

3.4. 动态改变数据范围
接下来,添加Streamlit的控件,让我们可以动态的改变表格和折线图中的数据范围。
date_range = st.slider(
"日期范围",
min_value=datetime(2024, 10, 1),
max_value=datetime(2024, 10, 20),
value=(datetime(2024, 10, 1), datetime(2024, 10, 20)),
)
st.write(date_range)
添加一个数据范围的控件,范围改变时,用date_range的实际值去更新页面要显示的数据。
# graph_data是按日期过滤后的数据
graph_data = df.copy()
graph_data = graph_data[graph_data.index >= date_range[0]]
graph_data = graph_data[graph_data.index <= date_range[1]]
表格和折线图中的数据改成上面的graph_data。
# 显示折线图
st.line_chart(graph_data)
# 显示数据
st.table(graph_data)
这样,我们就可以在页面上动态改变数据范围,同时更新数据表格和折线图。

4. 总结
短短几行代码,就生成了一个展示DataFrame数据的Web应用。
与传统的Web开发方式相比,不需要任何前端的知识(HTML,CSS和javascript等),
而且,通过使用封装好的控件(table,line_chart等),开发效率极高。
与Jupyter Notebook相比,为用户提供了一个友好的操作界面,简单直观。
不需要用户通过修改代码来尝试不同的图表。
示例最终的完整代码如下:
import streamlit as st
import pandas as pd
import numpy as np
from datetime import datetime
# 创建时间序列测试数据
A = np.random.randint(1, 80, size=(20, 1))
B = np.random.randint(20, 100, size=(20, 1))
df = pd.DataFrame()
df.index = pd.date_range("2024/10/01", periods=20)
df["A"] = A
df["B"] = B
st.header("第一个APP")
st.divider()
# 增加日期范围动态调整
date_range = st.slider(
"日期范围",
min_value=datetime(2024, 10, 1),
max_value=datetime(2024, 10, 20),
value=(datetime(2024, 10, 1), datetime(2024, 10, 20)),
)
st.write(date_range)
graph_data = df.copy()
graph_data = graph_data[graph_data.index >= date_range[0]]
graph_data = graph_data[graph_data.index <= date_range[1]]
# 显示折线图
st.line_chart(graph_data)
# 显示数据
st.table(graph_data)
用run子命令来运行这个脚本即可。
streamlit run main.py
『玩转Streamlit』--环境配置的更多相关文章
- Github 恶搞教程(一起『玩坏』自己的 Github 吧)
最近在伯乐在线读到一篇趣文,<如何在 Github『正确』做贡献>,里面各种能人恶搞 Github 的『Public contributions』,下面截取几个小伙伴的战绩: 顺藤摸瓜,发 ...
- 史上最全Windows版本搭建安装React Native环境配置
史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...
- Appium环境配置
一.JDK下载.安装及其环境配置 1.下载.安装略过…… 2.环境配置,以jdk-8u45为例,默认安装在 C:\Program Files\Java\jdk1.8.0_45\路径下. 下面设置环境变 ...
- phonegap环境配置与基本操作
一.开发环境配置: 1.工具环境安装: 安装java sdk 1.6以上版本号,Android Development Tools.ant,系统变量 Path后面加入 新增名稱 JAVA_HOME 值 ...
- React Native环境配置
React Native环境配置 史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有 ...
- ios开发环境配置及cordova安装与常用命令
一.ios开发环境配置 1.首先要有台Mac Book,如果有Mac Book,跳过步骤2.3.4,如果没有,执行步骤2.3.4: 2.下载并安装VMware Workstation,最好是下最新版本 ...
- 2018-2019-2 20165316 『网络对抗技术』Exp3:免杀原理与实践
2018-2019-2 20165316 『网络对抗技术』Exp3:免杀原理与实践 一 免杀原理与实践说明 (一).实验说明 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件, ...
- 2017-2018-2 20155303『网络对抗技术』Final:Web渗透获取WebShell权限
2017-2018-2 『网络对抗技术』Final:Web渗透获取WebShell权限 --------CONTENTS-------- 一.Webshell原理 1.什么是WebShell 2.We ...
- 2017-2018-2 20155303『网络对抗技术』Exp9:Web安全基础
2017-2018-2 『网络对抗技术』Exp9:Web安全基础 --------CONTENTS-------- 一.基础问题回答 1.SQL注入攻击原理,如何防御? 2.XSS攻击的原理,如何防御 ...
- 2017-2018-2 20155303『网络对抗技术』Exp8:Web基础
2017-2018-2 『网络对抗技术』Exp8:Web基础 --------CONTENTS-------- 一.原理与实践说明 1.实践具体要求 2.基础问题回答 二.实践过程记录 1.Web前端 ...
随机推荐
- Git安装与windows终端配置Git-bash
Git概述 简介 Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理.通过Git仓库存储和管理这些文件,Git仓库分为两种: 本地仓库:开发人员自己电脑上的Git仓库 远程仓 ...
- 【转载】 TensorFlow之name_scope/variable_scope
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u013745804/article/de ...
- conda环境下Python报错:raise MissingCUDAException("CUDA_HOME does not exist, unable to compile CUDA op(s)") CUDA_HOME does not exist, unable to compile CUDA op(s)
conda环境下Python报错: (pytorch) devil@Monster:~$ pip install deepspeed Collecting deepspeed Using cached ...
- 解决GitHub不显示图片问题——GitHub图片显示失败
在Github上打不开图片是一个极为常见的事情,出现这样的问题的原因就是我们的主机无法正确解析图片所在主机域名对应的IP地址,下面给出一个在本地主机(window10)上使用ping命令解析目标主机域 ...
- python绘图库matplotlib:刻度线的方向调整, in, out, inout
前文相关: python绘图库matplotlib:画线的标志marker的设置--类型/size/空心/边线颜色及大小/显示marker超出边界部分 由于工作需要经常用matplotlib来绘图,但 ...
- 图表全能王(ChartStudio) 上架VisionPro!
图表全能王(ChartStudio) - 终极图表制作工具!支持条形图.折线图.面积图.柱形图.条形图.饼图.玫瑰图.雷达图.牛肉图.风琴图.旭日图.桑基图等图表. https://apps.appl ...
- 8月5日CSP-S模拟赛赛后总结
8月5日CSP-S模拟赛赛后总结 \[8月5日 \ \ CSP-S模拟赛 \ \ 赛后总结 \\ 2024年8月5日 \\ by \ \ \ uhw177po \] 一.做题情况 第一题比赛 \(10 ...
- java-多线程(下)
多线程简单入门(Java)(下篇:多线程Java中的使用) 目录 一.创建多线程 二.线程的安全 三.线程的通信 一.创建多线程 在Java中,多线程的创建有4种方式. 方式一:继承于Thread类; ...
- LaTeX 魔法注释
LaTeX magic comments,有点像 shebang,不过与 shebang 有细微区别,不要搞混. % !TeX root = main.tex % !TeX program = xel ...
- 【测试平台开发】——01Vue前端框架实操
一.VScode官网地址 https://code.visualstudio.com/ 但是官网下载贼慢,需要修改下国内地址: 原地址:https://az764295.vo.msecnd.net/s ...