前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Streamlit:快速构建可视化网页(数据科学必备)

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

作者头像
luckzack
发布2023-09-29 09:18:37
8370
发布2023-09-29 09:18:37
举报

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

1 streamlit

1.1 什么是streamlit?

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

1.2 快速上手

pip安装

代码语言:javascript
复制
pip install streamlit

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

代码语言:javascript
复制
streamlit hello

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

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

代码语言:javascript
复制
import streamlit as st
st.title("Streamlit Demo")
st.write("Hello Word!")

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

代码语言:javascript
复制
streamlit run app.py

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

启动截图
启动截图

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

前端页面
前端页面

1.3复杂功能

1.3.1支持markdown语法

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

代码语言:javascript
复制
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示例
markdown示例

1.3.2 数据展示

代码语言:javascript
复制
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 自带画图

代码语言:javascript
复制
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也支持该画图结果的展示。

代码语言:javascript
复制
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示意图
matplotlib示意图

1.3.5 Plotly

代码语言:javascript
复制
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示意图
plotly示意图

2 总结

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

3 参考文献

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 streamlit
    • 1.1 什么是streamlit?
      • 1.2 快速上手
        • 1.3复杂功能
          • 1.3.1支持markdown语法
          • 1.3.2 数据展示
          • 1.3.3 自带画图
          • 1.3.4 Matplotlib
          • 1.3.5 Plotly
      • 2 总结
      • 3 参考文献
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档