目录
简介
一个傻瓜式构建可视化web的程序
Streamlit库官方地址:https://streamlit.io/
API文档地址:https://docs.streamlit.io/
Streamlit库基本介绍
Streamlit是一个基于 Python 的 Web 应用程序框架,致力于以更高效、更灵活的方式可视化数据,并分析结果。它是一个开源库,可以帮助数据科学家和学者在短时间内开发机器学习 (ML) 可视化仪表板。只需几行代码,我们就可以构建并部署强大的数据应用程序。其实就是用Python语言写一个本地Web,应用场景常常是机器学习可视化(当然也可做其他的图表分析等),不需要任何Web前后端开发经验。注意我们写出的Web只有本地可以访问,要接入互联网还需要其他进阶方法!
https://docs.streamlit.io/library/cheatsheet
优点和缺点(from Claude)
Streamlit 是一个用于构建数据应用程序的开源 Python 库,有以下优点和缺点:
优点:
- 简单易用:Streamlit 使用 Python 语法,非常容易掌握,可以快速构建数据应用程序。
- 美观大方:Streamlit 拥有漂亮的 UI 组件,可以构建出色观感的应用程序。
- 兼容性强:Streamlit 应用程序可以部署在任何地方 - 在本地运行,嵌入到Notebook中,部署在服务器上等等。
- 高度交互:Streamlit 支持许多 UI 组件,可以构建高度交互的应用程序。
- 开源免费:Streamlit 是免费开源的,有很大的社区支持。
缺点: - 只适合简单应用:Streamlit 适合快速构建简单的应用程序,对于大型复杂的应用不太适用。
- 定制性略差:Streamlit 的 UI 组件定制性稍微差一些,样式不太方便调整。
- 部署依赖较多:部署 Streamlit 应用程序依赖较多,比较麻烦,不像传统 Python 应用那么简单。
- 社区较小:虽然 Streamlit 开源社区在增长,但相比其他 Web 框架,社区还是较小。
- 不支持前后端分离:Streamlit 不支持前后端分离开发,后端和前端高度耦合。
所以,总体来说,Streamlit 是一个非常适合快速开发简单数据应用的工具,但对大型复杂应用和追求高定制性的项目,Streamlit 可能不太适用。但作为快速开发和原型构建,Streamlit 是一个很好的选择。 (已编辑)
命令
运行Streamlit的程序
CMD下运行
Another way of running Streamlit is to run it as a Python module. This can be useful when configuring an IDE like PyCharm to work with Streamlit:
Running
python -m streamlit run your_script.py
anaconda Powershell下运行
is equivalent to:
streamlit run your_script.py
You can also pass a URL to streamlit run! This is great when combined with GitHub Gists. For example:
streamlit run https://raw.githubusercontent.com/streamlit/streamlit_app.py
代码示例
# -*- coding: utf-8 -*-
"""
# My first app
原文:https://blog.csdn.net/qq_44747847/article/details/116462041
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
"""
import streamlit as st
import numpy as np
import pandas as pd
st.title("This is my first app")
st.write("你好")
st.write("Here's our first attempt at using data to create a table:")
#显示dataframe
df = pd.DataFrame({
'first column': [5, 6, 7, 8],
'second column': [50, 60, 70, 80]
})
st.write(pd.DataFrame({
'first column': [1, 2, 3, 4],
'second column': [10, 20, 30, 40]
}))
# 其中df定义的位置,并不影响最后的输出位置!
# 可参考https://docs.streamlit.io/library/get-started/main-concepts 中的use magic
df
#显示折线图
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['广州', '上海', '北京'])
st.line_chart(chart_data)
#显示地图
map_data = pd.DataFrame(
np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
columns=['lat', 'lon'])
st.map(map_data)
#发现地理位置不太满意,换成江苏南京!
smap_data = pd.DataFrame(
np.random.randn(1000, 2) / [50, 50] + [32.37, 118.4],
columns=['lat', 'lon'])
st.map(smap_data)
#显示单选框
if st.checkbox('Show dataframe'):
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c'])
chart_data
option = st.selectbox(
'Which number do you like best?',
df['first column'])
'You selected: ', option
#显示按钮
left_column, right_column = st.columns(2)
pressed = left_column.button('Press me?')
if pressed:
right_column.write("Woohoo!")
expander = st.expander("FAQ")
expander.write("Here you could put in some really, really long explanations...")
#添加一个时间进度条
import time
'Starting a long computation...'
# Add a placeholder
latest_iteration = st.empty()
bar = st.progress(0)
for i in range(100):
# Update the progress bar with each iteration.
latest_iteration.text(f'Iteration {i+1}')
bar.progress(i + 1)
time.sleep(0.1)
'...and now we\'re done!'
标签:column,应用程序,st,Streamlit,data,streamlit
From: https://www.cnblogs.com/treasury-manager/p/17358595.html