首页 > 其他分享 >Streamlit:快速构建可视化网页(数据科学必备)

Streamlit:快速构建可视化网页(数据科学必备)

时间:2024-05-09 14:33:06浏览次数:17  
标签:网页 st 可视化 pd np import Streamlit data streamlit

很多算法工程师在完成数据分析、模型训练或者项目总结的时候,往往只能通过ppt汇报,添加数据图表、截图模型实验结果等。如果想提供一个前端演示demo,通常可以搭建flask服务,但是flask需要学习很多前端知识,如css、html等,这又是一个深之又深的坑。那有没有什么工具能够跳过这些模块,直接提供一个可用的前端页面呢?答案是肯定的,今天给大家推荐一个轻量化、简单好用、快速上手的streamlit。

1 streamlit

1.1 什么是streamlit?

streamlit 是2019年开源的python库,在GitHub上已经超过了17k的stars了。AI算法工程师利用streamlit可以快速构建机器学习应用和高级数据分析可视化的用户界面。更多内容和介绍可以参考streamlit的官方帮助文档

1.2 快速上手

pip安装

pip install streamlit

安装好以后,执行如下命令,可以运行内置演示界面hello

streamlit hello

如果你想停止运行,可以随时在命令行里使用Ctrl+C终止应用。

然后可以创建自己的python脚本app.py

import streamlit as st
st.title("Streamlit Demo")
st.write("Hello Word!")

在python脚本的目录下,在终端中启动服务。

streamlit run app.py

执行后会在8501端口启动服务,如果启动成功则显示如下URL。

启动截图

本地浏览器打开该URL,则为刚刚创建的前端页面

前端页面

1.3复杂功能

1.3.1支持markdown语法

可以把平时写markdown的习惯保留下来,用到前端页面排版上去。

st.markdown("""
## 代码片段
import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.line_chart(data)
""")

前端输出结果:

markdown示例

1.3.2 数据展示

import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.write(data.head(10))

前端输出结果:

表格示例图

1.3.3 自带画图

import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.line_chart(data)

前端输出结果:

画图示例

streamlit支持的所有图类型如下:

  • 折线图 line_chart
  • 条形图 bar_chart
  • 面积图 area_chart

1.3.4 Matplotlib

matplotlib大家应该不陌生,这是python常用的画图工具。streamlit也支持该画图结果的展示。

import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])

st.title("matplotlib")
st.subheader("histogram")
fig_mp, ax_mpl = plt.subplots()
ax_mp = plt.hist(data)
plt.xlabel("x")
plt.ylabel("y")
st.pyplot(fig_mp)

前端输出结果:

matplotlib示意图

1.3.5 Plotly

import streamlit as st
import numpy as np
import pandas as pd
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
import plotly.express as px

st.title("plotly")
st.subheader("histogram")
fig = px.histogram(data)
st.plotly_chart(fig)

前端输出结果:

plotly示意图

2 总结

本文主要介绍了一种适合AI工程师们开箱即用的开源前端展示工具——streamlit。介绍了streamlit的安装、运行和几种图表。

3 参考文献

标签:网页,st,可视化,pd,np,import,Streamlit,data,streamlit
From: https://www.cnblogs.com/luckzack/p/18182102

相关文章

  • 网页布局------悬浮在input框上时旁别按钮边框颜色也会发生变化
    input边框和按钮放在同一个div下,使用hover可以设置悬浮在input边框时的颜色变化,而需要设置按钮边框的颜色变化则需要使用"+"来添加 页面结构<divclass="nav-search"><inputtype="search"placeholder="小米11"class="nav-search-inpu......
  • Gradio 和 Streamlit
    Gradio和Streamlit都是用于创建机器学习模型的Web界面的Python库,但它们的设计哲学和特性有所不同。以下是对这两个库的简要比较:Gradio:Gradio是一个用于快速为机器学习模型创建简单Web界面的库。它允许用户轻松地将输入数据发送到模型,并接收预测结果。Gradio的界面简......
  • python+selenium+excel自动登录,自动填写网页
    经常有些网页要登录,然后频繁填写一些重复的内容,本文暂只考虑不需要验证码的情况,可以通过selenium模拟用户行为在页面操作,用excel拖出相似内容,用xlrd读取并填写到网页中。导入相关包fromseleniumimportwebdriverimportosimportxlrdimportxlwtimportjsonimportreq......
  • Matplot3D for JAVA 【V5.0】发布 :一个纯JAVA开发的数学科学数据可视化组件,JAVA 三维
    ​ Matplot3DforJAVA概述 在数据科学和工程领域,数据可视化是理解和交流复杂信息的关键工具。如果您是一位Java开发者,寻找一个强大的、本地化的三维图形绘图库,那么Matplot3DforJAVA(V5.0)值得你关注。该组件旨在为Java开发者提供类似于Python中Matplotlib的三维绘图功能,让Jav......
  • 网页布局-------三角制作
    使用border设置三角形,通过transparent隐藏多余的内容<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><......
  • 3D 可视化:18 个 WebGL 框架和 Web3D 图形库
    3D可视化:18个WebGL框架和Web3D图形库作者:2D3D前端可视化开发2023-02-10湖南本文字数:2904字阅读完需:约10分钟WebGL是基于OpenGL的JavaScriptAPI库,允许Web浏览器在浏览器中渲染3D/2D图形,而无需安装额外的插件、桌面应用程序。WebGL允许......
  • 前端使用 Konva 实现可视化设计器(9)- 另存为SVG
    请大家动动小手,给我一个免费的Star吧~大家如果发现了Bug,欢迎来提Issue哟~github源码gitee源码示例地址另存为SVG这一章增强了另存为的能力,实现“另存为SVG”,大概是全网唯一的实例分享了吧。灵感来源:react-konva-custom-context-canvas-for-use-with-canvas2svg大......
  • toapi:抓取任意网页内容并提供 HTTP API获取数据
    Github地址:https://github.com/elliotgao2/toapiPythonToapi是一个基于XPath和CSS选择器的WebAPI框架,它能够快速将网页内容转换为结构化的API。Toapi提供了简单易用的接口,使得开发者可以轻松地从网页中提取数据,并以API的形式呈现出来。同时,Toapi支持自定义规则和过......
  • 一站式生活新体验:可视化技术让公寓商场综合楼焕新生
    在繁忙的都市生活中,我们都渴望找到一处既能满足居住需求,又能提供便捷购物体验的理想之地。如今,这一梦想已不再是遥不可及,随着科技的飞速发展,3D可视化技术正逐渐走进我们的生活,为我们带来前所未有的居住和购物新体验。山海鲸可视化搭建的公寓商场综合楼模型 一站式便捷生活可......
  • 网页布局-----头部设置和头部悬浮显示内容
    小米商城官网地址小米商城-Xiaomi14Ultra、RedmiK70、MIXFOLD3,小米电视官方网站一、头部1、效果图2、网页结构<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=devi......