Python:数据分析工具Streamlit

news2024/10/5 22:21:25

简介:Streamlit是一个开源Python库,可以轻松创建和共享用于机器学习和数据科学的漂亮的自定义web应用程序。只需几分钟,您就可以构建和部署功能强大的数据应用程序,同时可以结合 matplotlib 做出漂亮的图表,实现数据可视化。

历史攻略:

matplotlib:热图、箱形图、小提琴图、堆叠面积图、雷达图、子图

matplotlib:散点图、饼状图

matplotlib:pyplot的中文显示

Python:opencv画点、圆、线、多边形、矩形

python:数据可视化 - 动态

安装:

pip install streamlit

验证安装:

streamlit hello

图片

基本使用步骤:

1、编写代码

2、命令行运行:

streamlit run main.py [ARGUMENTS]

案例源码1:基础使用 - main.py

# -*- coding: utf-8 -*-
# time: 2024/3/3 22:58
# file: main.py
# 公众号: 玩转测试开发

import streamlit as st

st.title("My first streamlit app.")

# add text.
st.text("welcome to use streamlit.")

# add a input text.
name = st.text_input("input your name.", "")

# add a input button.
button = st.button("submit")

# if click button then run the function.
if button:
    st.text(f"Hello {name}! welcome to use streamlit.")

运行结果:streamlit run main.py [ARGUMENTS]

图片

图片

案例源码2:结合matplotlib, 请参考 -

matplotlib:热图、箱形图、小提琴图、堆叠面积图、雷达图、子图

仅需将 # plt.show() 替换为
st.pyplot(plt)

# -*- coding: utf-8 -*-
# time: 2024/3/3 23:05
# file: run.py
# 公众号: 玩转测试开发

import streamlit as st
import matplotlib.pyplot as plt
import numpy as np


# case6 - 子图数据:模拟Web和App的用户行为数据
days = np.arange(1, 31)
web_traffic = np.random.randint(100, 1000, size=30)
app_traffic = np.random.randint(100, 1000, size=30)
web_clicks = np.random.randint(10, 100, size=30)
app_clicks = np.random.randint(10, 100, size=30)

# 创建子图布局
fig, axs = plt.subplots(2, 2, figsize=(12, 10))

# 第一个子图:Web流量
axs[0, 0].plot(days, web_traffic, marker='o', color='tab:blue')
axs[0, 0].set_title('Daily Web Traffic')
axs[0, 0].set_xlabel('Day of the Month')
axs[0, 0].set_ylabel('Number of Users')

# 第二个子图:App流量
axs[0, 1].plot(days, app_traffic, marker='s', color='tab:green')
axs[0, 1].set_title('Daily App Traffic')
axs[0, 1].set_xlabel('Day of the Month')
axs[0, 1].set_ylabel('Number of Users')

# 第三个子图:Web点击量
axs[1, 0].bar(days, web_clicks, color='tab:orange')
axs[1, 0].set_title('Daily Web Clicks')
axs[1, 0].set_xlabel('Day of the Month')
axs[1, 0].set_ylabel('Number of Clicks')

# 第四个子图:App点击量
axs[1, 1].bar(days, app_clicks, color='tab:red')
axs[1, 1].set_title('Daily App Clicks')
axs[1, 1].set_xlabel('Day of the Month')
axs[1, 1].set_ylabel('Number of Clicks')

# 调整布局
plt.tight_layout()
# plt.show()
st.pyplot(plt)

运行结果:streamlit run run.py

图片

常用的 Streamlit 组件和它们的基本使用方法:

# 标题和文本:
st.title('标题'):添加一个大标题。
st.header('标题'):添加一个较大的标题。
st.subheader('标题'):添加一个较小的标题。
st.text('文本'):添加一段文本。

# 输入组件:
st.button('按钮'):添加一个按钮。
st.checkbox('复选框', value=False):添加一个复选框。
st.radio('单选框', options, index=0):添加一个单选框。
st.selectbox('下拉框', options, index=0):添加一个下拉框。
st.multiselect('多选框', options, default=None):添加一个多选框。
st.slider('滑块', min_value, max_value, value=None, step=None):添加一个滑块。
st.text_input('文本输入框', value='', max_chars=None):添加一个文本输入框。
st.number_input('数字输入框', min_value=None, max_value=None, value=None, step=None):添加一个数字输入框。
st.text_area('多行文本输入框', value='', max_chars=None):添加一个多行文本输入框。
st.date_input('日期输入框', value=None, min_value=None, max_value=None):添加一个日期输入框。
st.time_input('时间输入框', value=None):添加一个时间输入框。
st.file_uploader('文件上传', type=None, accept_multiple_files=False):添加一个文件上传组件。

# 输出组件:
st.write('文本或对象'):输出文本或对象。
st.markdown('Markdown 格式文本'):支持 Markdown 格式的文本输出。
st.latex('LaTeX 格式文本'):支持 LaTeX 格式的文本输出。
st.code('代码块'):显示代码块。
st.json('JSON 数据'):显示 JSON 数据。
st.dataframe(data):显示 Pandas 数据帧。
st.table(data):显示表格数据。
st.image(image, caption=None, use_column_width=False):显示图像。
st.audio(audio, format='audio/wav'):播放音频文件。
st.video(video, format='video/mp4'):播放视频文件。

# 绘图组件:
st.pyplot(fig):显示 Matplotlib 图形。
st.plotly_chart(fig):显示 Plotly 图形。
st.bokeh_chart(fig):显示 Bokeh 图形。
st.altair_chart(fig):显示 Altair 图形。

# 布局组件:
st.sidebar:创建一个侧边栏。
st.expander('标题'):创建一个可展开的区域。

# 高级功能和选项:
缓存数据:使用 st.cache 装饰器可以缓存函数的输出,以提高应用程序的性能。
进度条:使用 st.progress 组件可以显示任务的进度。
状态管理:使用 st.session_state 可以跨会话管理状态。
异步更新:使用 st.experimental_asyncio 可以实现异步更新应用程序的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1510564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像运算 - 图像像素点的加减异或操作

1、前言 图像是由像素组成的,而像素是由灰度值表现,灰度值由具体的正整数表现(0代表黑色,255代表白色)。因此,对于正整数可以进行一系列的数学运算,加减乘除等等,通过这些运算可以达到截取,合并图像等效果 2、图像的掩膜 掩膜的意思是利用特定的模板将图像感兴趣区域…

StringJoiner --java学习笔记

StringJoiner IDK8开始才有的,跟StrinaBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更…

Google发布创新AI工具Path Foundation和Derm Foundation,突破医学影像解读瓶颈,开启病理学与皮肤科研究新纪元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

2024-3-11-C++作业

1>试编程 要求&#xff1a; 提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 源代码: #include <iostream>using namespace std;int main() {string s;cout << "请输入字符串&#xff1a;"…

采购管理系统:寻源到付款 (S2P) 流程自动化有什么好处?

企业的采购部门由各种流程和团队驱动&#xff0c;包括采购和应付账款。为实现战略目标而采用的策略流程之一是寻源到付款&#xff08;S2P&#xff09;流程。 何时使用 “寻源到付款”&#xff1f; 顾名思义&#xff0c;寻源到付款的主要目的是寻找最佳供应商以满足业务需求&a…

传感器是什么?有哪些类型及应用

什么是传感器 传感器是一种用于检测、测量和感知某种特定物理量或环境参数的设备或器件。它们能够将所测量的物理量转换为可供处理和分析的电信号、数字信号或其他形式的输出信号。传感器在各种领域中都有广泛的应用&#xff0c;包括工业、医疗、环境监测、汽车、航空航天、农…

MonkeyRunner在自动化测试里的应用场景!

MonkeyRunner是Android提供的一个自动化测试工具&#xff0c;主要用于对Android设备或模拟器进行功能和压力测试。以下是一些MonkeyRunner在自动化测试中的应用场景及实例代码&#xff1a; 基本操作测试 点击屏幕上的特定位置或元素。 模拟滑动和手势操作。 发送按键事件。 …

nginx的使用,homebrew安装及使用nginx。

Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;它提供了诸如 IMAP、POP3 和 SMTP 等邮件代理服务。以下是 Nginx 的主要作用&#xff1a;12345 作为 Web 服务器。Nginx 能够以较少的系统资源提供高效率的服务&#xff0c;尤其在高并发连接下表现出色。1…

双面布局贴补强,FPC焊接很受伤

高速先生成员--王辉东 FPC上有器件的位置添加补强&#xff0c;按理说是合情合理&#xff0c;为什么加了补强&#xff0c;就无法焊接。请走进今天的案例&#xff0c;为你揭秘&#xff0c;看看你是否也有相似的经历。 生活就像巧克力&#xff0c;你永远不知道下一颗是什么味道。…

【物联网设备端开发】FastBee平台设备 Arduino SDK接入指南

一、Arduino开发环境 开发工具&#xff1a; Arduino开 发 板&#xff1a; esp8266 core for arduino v3.0.2 或 esp32 core for arduino 1.0.6依 赖 库&#xff1a; PubSubClient2.8.0 、 ArduinoJson6.19.1 、 OneButton2.0.4 二、Arduino示例功能 WIFI连接、MQTT连接、设备…

【Web】浅浅地聊Hessian反序列化有诸多限制的原因

目录 前言 CC6的失效——LazyMap之殇 Rome-TemplatesImpl链的失效——transient之殇 结语 前文&#xff1a;【Web】浅聊Java反序列化之玩转Hessian反序列化的前置知识 【Web】浅聊Hessian反序列化之打Rome出网&不出网 前言 注意到很多 Java 原生反序列化利用链在 Hes…

自定义校验注解:枚举、列举模式

1、想使用枚举作为参数校验对象&#xff0c;减少手工代码量。 2、有些参数是固定的&#xff0c;列举校验&#xff0c;减少… 一、枚举模式 1、一般枚举 注释 Documented Retention(RetentionPolicy.RUNTIME) Target({ElementType.FIELD, ElementType.PARAMETER}) Constraint…

内网渗透-跨域环境渗透-1

目录 smbclient工具 mimikatz工具 Kerbers协议 NTLM认证 hash传递攻击&#xff08;PTH攻击&#xff09; 黄金票据攻击 白银票据 MS14-068 smbclient工具 在linux里面连接远程windows共享目录&#xff0c;可以使用这个工具 ​ 第一种连接方式&#xff1a;smbclient -L 目…

蝙蝠避障:我生活中的一道光

盲人的世界&#xff0c;是无尽的黑暗。看不见光&#xff0c;看不见色彩&#xff0c;甚至看不见自己的手。但在这个黑暗的世界里&#xff0c;我找到了一个光明的出口&#xff1a;一款可以障碍物实时检测的名为蝙蝠避障的盲人软件。 这款软件就像是我的一双眼睛。它通过先进的激光…

基于SpringBoot+MYSQL的大学生入学审核系统

目录 1、 前言介绍 2、主要技术 3、系统概要设计 3.1、概述 3.2、系统结构 3.3、数据库设计 3.3.1、数据库实体 3.3.2、数据库设计表 4、运行截图(部分) 4.1、学生信息管理 4.2、学生信息查询 4.3、学生信息修改 4.4、办理学生入学 4.5、学生学籍管理 4.6、入学办…

数据集生成 YOLOV5 可训练的数据目录、并且可视化

1、前言 YOLOV5 训练数据的目录结构如下&#xff1a; 如果有测试集的话&#xff0c;也按照下面目录摆放即可 注意&#xff1a;这里的图片和标签文件名要严格对应&#xff01;&#xff01;后缀除外 关于YOLOv5介绍或者yolo格式的介绍参考之前专栏&#xff0c; 2、划分数据生成…

指针篇章-(4)+qsort函数的模拟

学习目录 ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————…

第二十一天-NumPy

目录 什么是NumPy NumPy使用 1.数组的创建 2.类型转换 3.赠删改查 4.数组运算 5.矩阵运算 什么是NumPy 1.NumPy操作的是多维数组&#xff0c;什么是纬度&#xff1f; NumPy使用 1. 安装 pip install numpy import numpy as np 2.官网&#xff1a; 中文官网&#xff1a…

Vue3案例——通过指令实现下拉菜单效果

2.6 Vue3案例——通过指令实现下拉菜单效果 使用v-for指令可以对数组、对象进行循环&#xff0c;来获取其中的每一个值。 1. v-for指令遍历数组 使用v-for指令时&#xff0c;必须使用特定语法alias in expression&#xff0c;其中items是源数据数组&#xff0c;而item则是被…

java集合题库详解

1. Arraylist与LinkedList区别 可以从它们的底层数据结构、效率、开销进行阐述哈 ArrayList是数组的数据结构&#xff0c;LinkedList是链表的数据结构。 随机访问的时候&#xff0c;ArrayList的效率比较高&#xff0c;因为LinkedList要移动指针&#xff0c;而ArrayList是基于索…