数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面

news/2024/5/20 0:02:16/文章来源:https://blog.csdn.net/littlefun591/article/details/136668985

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

所属的专栏:数据分析系统化教学,零基础到进阶实战

景天的主页:景天科技苑

文章目录

  • Streamlit
    • 什么是streamlit
    • 数据科学家为何要使用Streamlit?
    • 具体操作
      • 1.write()函数
      • 2.滑块组件slider
      • 3.文本框操作text_input
      • 4.多选框checkbox
      • 5.下拉框selectbox
      • 6.侧边栏sidebar
      • 7.单选按钮radio
      • 8.进度条progress
      • 9.文件上传下载

Streamlit

什么是streamlit

Streamlit是一个免费的开源框架,用于快速构建和共享漂亮的数据科学Web应用程序。它是一个基于Python的库,专为机器学习工程师设计。
数据分析工程师不是网络开发人员,他们对花几周时间学习使用这些框架来构建网络应用程序不感兴趣。
相反,他们需要一个更容易学习和使用的工具,只要它可以显示数据并收集分析/建模所需的参数。Streamlit允许您仅用几行代码创建一个外观惊艳的应用程序。

数据科学家为何要使用Streamlit?

Streamlit最大的好处是,您甚至不需要了解Web开发的基础知识就可以开始或创建您的第一个Web应用程序。
因此,如果你是一个对数据科学感兴趣的人,你想轻松、快速地部署你的模型,并且只需要几行代码,Streamlit是一个很好的选择。

优势:

  • 不需要具备前端知识即可应用streamlit。
  • 学习成本极低
    • 你不需要花费几天或几个月的时间来创建一个Web应用,你可以在几个小时甚至几分钟内创建一个非常漂亮的机器学习或数据科学应用。
  • 它兼容大多数Python库
    • 例如panda、matplotlib、seaborn、plotly、Keras、PyTorch等。

环境安装

pip install streamlit

在这里插入图片描述

#测试安装是否正常:

streamlit hello

随便输入个邮箱,即可显示出访问url
在这里插入图片描述

程序运行

streamlit run xxx.py

具体操作

1.write()函数

可以通过该函数向看板上输出显示指定内容,每一个write函数,单独占一行显示

import pandas as pd
import streamlit as stst.write("1. write()函数基本操作")
#展示表格st.write(pd.DataFrame({'第一列': [1,2,3,4,5],'第二列': [6,7,8,9,10]}
))

在这里插入图片描述

运行:
在这里插入图片描述

在浏览器查看:
直接出图表,是不是很方便!!!
在这里插入图片描述

2.滑块组件slider

“slider"的中文意思是"滑块”。它是一种用户界面元素,通常用于选择一个数值范围或从给定选项中选择一个值。
滑块的外观通常是一个可拖动的滑块,用户可以通过移动滑块来选择所需的值。
滑块可以在许多应用程序和网页中使用,例如调整音量、选择年龄范围或设置某个参数的值。

import streamlit as stst.write("st.slider()滑块")
#slider参数为滑块自定义名称,返回值为滑动到的数值
num = st.slider("num")
st.write(num, "squred is", num*num)

在这里插入图片描述

运行程序,浏览器展示
在这里插入图片描述

3.文本框操作text_input

页面显示输入文本框,看下参数
在这里插入图片描述

import streamlit as stst.write("文本框操作")
#文本框输入,回车结束
st.text_input("your name", key="name")
st.text_input("your age", key="age")# 显示输入的值,根据key键来获取
st.write(st.session_state.name,st.session_state.age)

运行程序,浏览器展示
在这里插入图片描述

4.多选框checkbox

import streamlit as st
import pandas as pd
import numpy as npst.write("checkbox()多选框")
# 点击checkbox后返回True,未点击为False
ex1 = st.checkbox('显示/不显示 表格')
if ex1:df = pd.DataFrame(np.random.randn(20, 3),columns=['a', 'b', 'c'])st.write(df)ex2 = st.checkbox('显示/不显示 滑块')
if ex2:x = st.slider('x')st.write(x)

运行程序,浏览器展示
在这里插入图片描述

5.下拉框selectbox

import streamlit as st#返回值为选中的内容信息
option = st.selectbox(label='请选择省份信息:',options=['河北','山东','河南','吉林']
)st.write("您选择的是: ", option)

在这里插入图片描述

6.侧边栏sidebar

st.sidebar.后面跟侧边栏显示的内容组件

import streamlit as st#侧边栏下拉框
add_selectbox = st.sidebar.selectbox(label="通讯方式选项",options=('微信','QQ','手机','邮件')
)
#获取下拉选项
st.write("下拉选项: ", add_selectbox)#侧边栏滑块
add_slider = st.sidebar.slider(label="选择一个范围的值",min_value=0.0, max_value=100.0, value=(25.0, 75.0)
)
#获取滑块的值
st.write("值的范围: ", add_slider)

在这里插入图片描述

7.单选按钮radio

import streamlit as st# st.columns参数表示列数,表示要在页面展示的列数
left_column, right_column = st.columns(2)  #显示两列布局容器
# 左边列设置,使用with
with left_column:# 返回值为选中的选项值chosen = st.radio(label='电脑品牌',options=('苹果', '华为', '小米'))st.write(f'你选择的品牌是: {chosen}')# 右边列设置
with right_column:# 返回值为选中的选项值chosen = st.radio(label='手机品牌',options=('苹果', '华为', '小米'))st.write(f'你选择的品牌是: {chosen}')

在这里插入图片描述

8.进度条progress

import streamlit as st
import time
st.write("模拟长时间的计算...")# 创建一个动态显示数据的容器,用于动态显示进度条的进度数值
value = st.empty()
#创建进度条,进度条初始值为0
bar = st.progress(0)
for i in range(100):#这是动态显示的数值value.text(f'Iteration {i+1}')# 更新进度条bar.progress(i+1)time.sleep(0.1)
st.write('运行结束!')

在这里插入图片描述

9.文件上传下载

(1)文件上传:

st.file_uploader()

看下参数
在这里插入图片描述
参数介绍
在这里插入图片描述

上传penguins.csv文件,然后选择不同的两个企鹅特征,用散点图观察其分布形式。
看下源文件
在这里插入图片描述

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
st.write('上传penguins.csv文件,然后选择不同的两个企鹅特征,用散点图观察其分布形式。')#创建文件上传组件,如果上传失败则返回None,上传下载都可以搞
upload_file = st.file_uploader(label = "上传数据集CSV文件" #自定义文件上传提示信息
)#判断上传文件是否成功
if upload_file:df = pd.read_csv(upload_file)st.write('显示前5行数据:',df.head(5))st.success("上传文件成功!")
else:st.stop() # 退出#制作下拉框,用于选择企鹅的不同特征
x_var = st.selectbox(label = "请选择:",options = ['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']
)
#制作下拉框,用于选择企鹅的不同特征
y_var = st.selectbox(label = "请选择",options = ['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']
)fig, ax = plt.subplots() #返回值:画布、画布子图例
#绘制散点图ax = sns.scatterplot(data=df,x=x_var,y=y_var,hue='species')
plt.xlabel(x_var)
plt.ylabel(y_var)
plt.title('Penguins Scatter Plot')#显示画布
st.pyplot(fig)

在这里插入图片描述

在这里插入图片描述

可以选择企鹅的不同特征,来绘制图
在这里插入图片描述

默认上传单个文件最大为200M,我们可以做修改
要在运行程序当前目录下,创建个.streamlit目录,里面创建个config.toml文件
内容如下,设置上传文件大小限制,单位是M

[server]
maxUploadSize = 4500

在这里插入图片描述

案例:保存上传的文件到本地

import streamlit as st#创建文件上传组件,如果上传失败则返回None
upload_file = st.file_uploader(label = "上传图片" #自定义文件上传提示信息,)#判断上传文件是否成功
if upload_file:with open('上传图片.png','wb') as file:#注意,保存文件要保存上传对象.getvalue()file.write(upload_file.getvalue())st.success("上传文件成功!")
else:st.stop() # 退出

在这里插入图片描述

上传成功

在这里插入图片描述

(2)文件下载:

st.download_button()

看下参数
在这里插入图片描述
参数介绍
在这里插入图片描述

案例:

import streamlit as stst.write('下载playwright.png文件')with open('playwright.png','rb') as file:st.download_button(label='download_button',data=file,file_name="playwright.png",mime='image/png')

运行程序,浏览器查看,点击下载按钮,下载完成
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux_IMX6ULL驱动开发]-基础驱动

驱动的含义 如何理解嵌入式的驱动呢,我个人认为,驱动就是嵌入式上层应用操控底层硬件的桥梁。因为上层应用是在用户态,是无法直接操控底层的硬件的。我们需要利用系统调用(open、read、write等),进入内核态…

RuleApp资源社区,知识付费社区,可对接typecho的小程序APP

强大的文章/社区/自媒体客户端,支持打包为安卓,苹果,小程序。包括文章模块,用户模块,支付模块,聊天模块,商城模块等基础功能,包含VIP会员,付费阅读等收费体系&#xff0c…

C程序编译、链接与项目构建

C程序编译、链接与项目构建 摘要C编译环境静、动态库介绍gcc与g和程序编译、链接Visual Studio创建和链接库动态库的显示调用Windows下显示动态库的加载/查找方式 Make介绍安装使用 CMake介绍安装使用构建方式内部构建外部构建构建使用静/动态库常用[系统]变量常用指令CMake模块…

PostgreSQL关系型数据库介绍与部署

使用背景 在过去的几年中,PostgreSQL的使用量逐渐增加,而Oracle和MySQL的使用量则有所下降。这主要是由于以下几个原因:开源和免费、功能丰富、可扩展性强、安全性高、跨平台支持好、社区活跃、成熟稳定。这些因素使得PostgreSQL成为了许多开…

2024/3/23打卡数组分割(第14届蓝桥杯)——二项式+快速幂

题目 思路 分析该题,要将集合 划分成两个子集 ,且两个子集的和都是偶数。 可知:偶数 偶数 偶数;偶数 奇数 奇数;奇数 奇数 偶数; 分析可得:如果该集合的和为奇数,就不能分…

八、C#计数排序算法

简介 计数排序是一种非比较性的排序算法,适用于排序一定范围内的整数。它的基本思想是通过统计每个元素的出现次数,然后根据元素的大小依次输出排序结果。 实现原理 首先找出待排序数组中的最大值max和最小值min。 创建一个长度为max-min1的数组count…

IP如何异地共享文件?

【天联】 组网由于操作简单、跨平台应用、无网络要求、独创的安全加速方案等原因,被几十万用户广泛应用,解决了各行业客户的远程连接需求。采用穿透技术,简单易用,不需要在硬件设备中端口映射即可实现远程访问。 异地共享文件 在…

Calico配置路由反射器 (RR) 模式

RR介绍 在 Calico 网络中,默认使用 Node-to-Node Mesh 全互联模式,即集群中的每个节点之间都会相互建立 BGP 连接,用于路由交换。然而,随着集群规模的扩大,全互联模式会导致连接数成倍增加,产生性能问题。为…

Linux 注入依赖环境

文章目录 配置依赖程序安装 JDK安装 Tomcat安装 mysql 配置依赖程序 下面配置依赖程序都以CentOS为例。 安装 JDK 可以直接使用 yum(CentOS) 直接进行安装。 先搜索,确定软件包的完整名称。 yum list | grep jdk再进行安装 进行安装的时候一定要先确保处在“管理…

前端学习--品优购项目

文章目录 前端学习--品优购项目1.案例铺垫文件建立与命名必备文件网站favicon图标网站TDK三大标签SEO优化常用命名 2.LOGO SEO优化3.实际代码4.申请免费域名 前端学习–品优购项目 1.案例铺垫 文件建立与命名 一个项目中为了方便实用和查找内容会有多个文件夹,比如…

idea插件开发案例:将批量插入方法转换成分批批量插入

代码: idea-plugin-demo 1.背景 excel导入时都会使用批量插入或者批量更新到数据库,这在mysql下没有问题。 但因为公司国产化需求,换成达梦数据库就不行了,报sql超长。 一开始想写mybatis拦截器处理,又怕出现bug,这个问…

MySQL为什么会选错索引

在平时不知道一有没有遇到过这种情况,我明明创建了索引,但是MySQL为何不用索引呢?为何要进行全索引扫描呢? 一、对索引进行函数操作 假设现在维护了一个交易系统,其中交易记录表 tradelog 包含交易流水号(tradeid)、交…

Ubuntu 中如何选择Java版本

如何在 Ubuntu 上安装多个版本的 Java 首先,我们得检查一下你的系统里是否已经装了 Java。这个很简单,只需运行下面这条命令: 在 Linux 上安装 Java 的实战示例update-java-alternatives --list 输出结果: 检查是否安装了 Java…

存储的过程

一、存储过程 1.1 概述 存储过程可以轻松而高效的去完成这个需求,有点类似shell脚本里的函数 1.2 特点 存储过程在数据库中创建并保存,它不仅仅是 SQL 语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。存储过…

lora-scripts 训练IP形象

CodeWithGPU | 能复现才是好算法CodeWithGPU | GitHub AI算法复现社区,能复现才是好算法https://www.codewithgpu.com/i/Akegarasu/lora-scripts/lora-trainstable-diffusion打造自己的lora模型(使用lora-scripts)-CSDN博客文章浏览阅读1.1k次…

web 技术中前端和后端交互过程

1、客户端服务器交互过程 客户端:上网过程中,负责浏览资源的电脑,叫客户端服务器:在因特网中,负责存放和对外提供资源的电脑叫服务器 服务器的本质: 就是一台电脑,只不过相比个人电脑它的性能高很多,个人电脑中可以通过安装浏览器的形式,访问服务器对外提供的各种资源。 个人…

如何在vue中使用echarts,与jquery中有啥不同。

一、vue中使用echarts的步骤 在 Vue 中使用 ECharts 可以按照以下步骤进行: 安装 ECharts:使用 npm 或 yarn 安装 ECharts: npm install echarts 在 Vue 组件中引入 ECharts: import echarts from echarts 在 Vue 组件的 mou…

http响应练习—在服务器端渲染html(SSR)

一、什么是服务器端渲染(SSR) 简单说,就是在服务器上把网页生成好,整个的HTML页面生成出来,生成出的页面已经包含了所有必要的数据和结构信息,然后直接发给浏览器进行展现。 二、例题 要求搭建http服务&a…

QT_day4:对话框

1、完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&…

其实StartAI也是一款修图工具 用StartAI修图之“去除背景”

其实StartAI不仅仅是一款AI绘画插件,更是一款可以对我们的摄影图片、广告海报进行修图的AI修图工具。StartAI包含了AI绘画、AI修图等多种复合型AI智能实用工具。 用【背景移除】功能对图片一个背景修图 1.实体广告图片 我们可以通过【背景移除】将广告图中的实体…