Streamlit快速构建数据应用程序

简介: 【10月更文挑战第21天】Streamlit 是一个开源的 Python 库,用于快速构建数据应用程序。它简化了数据可视化的开发过程,允许用户通过简单的 Python 脚本创建交互式应用,而无需编写复杂的前端代码。本文介绍了 Streamlit 的基本概念、安装方法、示例应用的创建、扩展功能及部署方法,展示了其在 Python 可视化领域的潜力和优势。

在数据科学和机器学习领域,数据可视化是一项至关重要的任务。它不仅可以帮助我们更好地理解数据,还可以向他人传达我们的发现。而Streamlit是一个开源的Python库,使得构建数据应用程序变得非常简单,它可以帮助您在几分钟内将数据可视化应用程序部署到网络上。

什么是Streamlit?

Streamlit是一个用于构建数据应用程序的Python库,它允许您使用简单的Python脚本创建交互式应用程序。通过Streamlit,您可以快速创建数据可视化界面,而无需编写大量的HTML、CSS或JavaScript代码。您只需编写Python代码,就可以构建具有各种交互功能的应用程序。

安装Streamlit

要安装Streamlit,只需在您的命令行界面中运行以下命令:

pip install streamlit

安装完成后,您就可以开始创建您自己的数据应用程序了。

示例:创建一个简单的数据可视化应用程序

让我们通过一个简单的示例来演示如何使用Streamlit创建一个数据可视化应用程序。假设我们有一些关于房屋价格的数据,我们希望创建一个应用程序,可以显示房屋价格的分布,并允许用户通过滑块选择房屋价格的范围。

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

# 创建一些模拟的房屋价格数据
np.random.seed(0)
data = np.random.normal(100, 20, 1000)

# 将数据转换为DataFrame
df = pd.DataFrame(data, columns=['Price'])

# 创建Streamlit应用程序
st.title('房屋价格分布')
st.write('使用滑块选择房屋价格范围')

# 添加滑块以选择价格范围
price_range = st.slider('选择价格范围', min_value=0, max_value=200, value=(0, 200))

# 根据选择的价格范围过滤数据
filtered_data = df[(df['Price'] >= price_range[0]) & (df['Price'] <= price_range[1])]

# 绘制价格分布直方图
plt.hist(filtered_data['Price'], bins=30, edgecolor='k')
plt.xlabel('价格')
plt.ylabel('频数')
plt.title('房屋价格分布')
st.pyplot(plt)

在这个示例中,我们首先生成了一些模拟的房屋价格数据,并将其转换为DataFrame。然后,我们使用Streamlit创建了一个标题和一个滑块,让用户可以选择价格范围。根据用户的选择,我们过滤了数据并绘制了价格分布的直方图。

运行应用程序

要运行上面的应用程序,只需将上述代码保存到一个名为app.py的文件中,然后在命令行中导航到该文件所在的目录,并运行以下命令:

streamlit run app.py

Streamlit将启动一个本地服务器,并在浏览器中打开您的应用程序。您可以通过调整滑块来选择不同的价格范围,然后查看应用程序实时更新的直方图。

扩展应用程序功能

除了基本的数据可视化之外,Streamlit还提供了许多其他功能,可以帮助您创建更加复杂和交互式的应用程序。以下是一些您可以尝试的功能:

1. 添加交互式控件

除了滑块之外,Streamlit还支持多种其他类型的交互式控件,如下拉菜单、复选框、单选按钮等。您可以根据应用程序的需求添加这些控件,以提供更丰富的用户体验。

# 添加下拉菜单以选择数据集
dataset = st.selectbox('选择数据集', ['数据集1', '数据集2', '数据集3'])

# 添加复选框以选择是否显示数据摘要信息
show_summary = st.checkbox('显示摘要信息')

# 添加单选按钮以选择不同的图表类型
chart_type = st.radio('选择图表类型', ['直方图', '箱线图', '密度图'])

2. 集成其他Python库

Streamlit与许多其他常用的Python库兼容,如Plotly、Altair、Bokeh等。您可以使用这些库来创建更加高级和定制化的可视化效果。

import plotly.express as px

# 使用Plotly Express创建交互式散点图
fig = px.scatter(df, x='Feature1', y='Feature2', color='Label', size='Size')
st.plotly_chart(fig)

3. 增强用户反馈

您可以使用Streamlit的st.write()函数来输出文本、表格、图像等内容,以向用户提供更多的反馈信息。

# 输出数据摘要信息
if show_summary:
    st.write(df.describe())

部署应用程序到网络

一旦您完成了应用程序的开发,您可能希望将其部署到网络上,以便其他人可以访问。Streamlit提供了一个简单的命令来将您的应用程序部署到云服务上,例如Streamlit Sharing、Heroku或AWS等。

使用Streamlit Sharing进行部署

Streamlit Sharing是Streamlit官方提供的免费部署服务,它允许您将应用程序部署到云端,并与其他人共享。要将应用程序部署到Streamlit Sharing上,您只需将应用程序代码上传到GitHub,并在Streamlit Sharing上进行配置即可。

streamlit deploy your_app.py

Streamlit Sharing会为您的应用程序提供一个唯一的URL,您可以通过该URL访问您的应用程序。

使用其他云服务进行部署

除了Streamlit Sharing之外,您还可以选择使用其他云服务,如Heroku、AWS、Google Cloud等,来部署您的应用程序。这些服务通常提供更多的灵活性和扩展性,但可能需要一些额外的配置步骤。

安全性考虑

无论您选择哪种部署方式,都需要确保您的应用程序在部署过程中得到了适当的安全保护。这包括确保您的数据受到保护,并采取措施防止未经授权的访问。

访问控制

您可以通过设置访问控制权限来限制谁可以访问您的应用程序。这通常涉及使用身份验证和授权机制,以确保只有经过授权的用户可以访问您的应用程序。

数据保护

如果您的应用程序涉及处理敏感数据,您需要确保这些数据在传输和存储过程中得到了适当的加密和保护。这包括使用HTTPS协议进行数据传输,以及在数据存储中使用加密技术。

总结

在本文中,我们介绍了如何使用Streamlit快速构建数据应用程序,并探讨了其在Python可视化领域的未来。我们首先了解了Streamlit的基本概念和安装方法,然后通过一个简单的示例演示了如何创建一个基本的数据可视化应用程序。接着,我们介绍了如何扩展应用程序的功能,包括添加交互式控件、集成其他Python库以及增强用户反馈。最后,我们讨论了如何将应用程序部署到网络上,并强调了安全性考虑的重要性。

通过Streamlit,Python开发者可以快速、轻松地构建各种类型的数据应用程序,无论是用于数据可视化、模型部署还是其他用途。Streamlit的简单易用性使得数据科学家、机器学习工程师和其他领域的专业人士都能够快速上手,并将想法转化为实际可运行的应用程序。随着越来越多的开发者采用Streamlit,Python可视化领域的未来变得更加光明,我们期待看到更多令人惊叹的数据应用程序的诞生。

总的来说,Streamlit为Python开发者提供了一个强大而简洁的工具,使他们能够轻松地构建、部署和分享数据应用程序,推动了Python在数据可视化领域的进一步发展。

相关文章
|
存储 设计模式 前端开发
Streamlit应用中构建多页面(三):两种方案(上)
Streamlit应用中构建多页面(三):两种方案
4665 0
|
定位技术
Streamlit的第一个应用(二)(下)
Streamlit的第一个应用(二)
701 0
|
机器学习/深度学习 前端开发 数据可视化
神奇的streamlit (哇 原来深度学习还可以这样玩)
神奇的streamlit (哇 原来深度学习还可以这样玩)
神奇的streamlit (哇 原来深度学习还可以这样玩)
|
机器学习/深度学习 人工智能 数据处理
[python 技巧] 快速掌握Streamlit: python快速原型开发工具
本文旨在快速上手python的streamlit库,包括安装,输入数据,绘制图表,基础控件,进度条,免费部署。
1885 64
[python 技巧] 快速掌握Streamlit: python快速原型开发工具
|
机器学习/深度学习 JavaScript Python
Streamlit应用打包发布
搞事情还是非常累的,那么这里的话就简单更新一下使用实用一点的文章。这也是在实际过程当中遇到了很多问题,最终才解决之后的一篇经验文吧。 打包准备 这里我使用到的打包软件还是Pyinstaller ,通过这个来对其进行打包,软件本体大概是长这个样子:
|
机器学习/深度学习 前端开发 数据可视化
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
1909 0
|
存储 JSON 测试技术
python中json和类对象的相互转化
针对python中类对象和json的相关转化问题, 本文介绍了4种方式,涉及了三个非常强大的python库jsonpickle、attrs和cattrs、pydantic,但是这些库的功能并未涉及太深。在工作中,遇到实际的问题时,可以根据这几种方法,灵活选取。 再回到结构化测试数据的构造,当需要对数据进行建模时,也就是赋予数据业务含义,pydantic应该是首选,目前(2024.7.1)来看,pydantic的生态非常活跃,各种基于pydantic的工具也非常多,建议尝试。
|
人工智能 安全 API
用通义Qwen大模型和Streamlit构建 ChatPDF 应用(附代码)
本文介绍了如何利用通义千问Qwen大模型构建一个本地ChatPDF AI助手,该助手允许用户上传PDF并与之对话,确保文档隐私安全。项目通过阿里云百炼平台获取Qwen-Long模型,支持多种文档格式。现实现步骤包括导入库、加载环境变量、初始化客户端、编码器、页面与对话管理、文件上传、选择模型、获取AI回答及计算费用,主函数整合这些功能,提供交互体验。
1895 0
用通义Qwen大模型和Streamlit构建 ChatPDF 应用(附代码)
|
机器学习/深度学习 缓存 数据可视化
Streamlit入门指南
Streamlit是Python库,用于创建交互式数据科学和机器学习Web应用。它简化了定制Web应用的创建,提供内置小部件和工具进行数据展示、用户输入处理和自定义可视化。快速入门涉及安装Streamlit、导入库、定义应用并使用`streamlit run`命令运行。示例代码展示了如何创建一个显示滑块和正弦图的应用。最佳实践包括组织代码、利用缓存、优化布局以及使用内置功能。Streamlit Gallery提供了更多应用示例,如文本生成器和图像分类器。
1659 0
|
API 文件存储
使用Streamlit创建AutoGen用户界面
AutoGen作为一个最大化LLM(如GPT-4)能力的框架而脱颖而出。由微软研究院开发的AutoGen通过提供一种自动化、优化和编排工作流的方法,简化了复杂的、基于多代理llm的应用程序的创建。我们在以前的文章中也有过介绍,你可以与许多GPT交谈,并且GPT和GPT之间也可以互相交谈。每个GPT都是它自己的“代理”,并在总体业务流程中扮演特殊角色。但是AutoGen是用命令行模式进行交互的,这对我们的输入来说非常不方便,所以这次我们来对其进行改造,使用Streamlit创建一个web界面,这样可以让我们更好的与其交互。
806 1

热门文章

最新文章