Python:数据分析工具Streamlit

简介: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 可以实现异步更新应用程序的功能。
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值