Python数据分析师使用低代码Streamlit实现Web数据可视化方法——入门篇

谁能帮你不用懂得复杂的HTML、JavaScript、CSS等前端技术就能快速做出来一个炫酷的Web APP,把数据分析结果可视化呈现出来?本文推荐Python界新秀,高速发展的开源Web框架Streamlit,以及Python界较优秀交互式可视化工具Plotly。

1. Streamlit入门

1.1. 什么是Streamlit?

让python代码快速生成web app是很多AI算法工程师们的需求,2019年新兴的这个streamlit项目能帮你解决类似的问题。Python应用程序框架Streamlit,是一个开源的Python库,在github(https://github.com/streamlit/streamlit)上超过17.2千颗stars(截止2022.1.11),利用Streamlit可以快速构建机器学习应用和高级数据分析可视化的用户界面。

Streamlit官方帮助文档为https://docs.streamlit.io/

使用简单的pip安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Streamlit

在命令行窗口,输入命令启动Demo服务:

streamlit hello

在这里插入图片描述
本地默认端口为8501。
在这里插入图片描述

1.2. 画个图

写段Python代码,文件名为quickstart.py:

import streamlit as st
import pandas as pd
import numpy  as np

chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['线条1', '线条2', '线条3'])

st.markdown('#### 画图')
st.line_chart(chart_data)

st.markdown('''
    #### 代码
    
        chart_data = pd.DataFrame(
            np.random.randn(20, 3),
            columns=['线条1', '线条2', '线条3'])
        
        st.line_chart(chart_data)
''')

在命令行下,并且在代码的目录下,输入命令streamlit run 代码文件名。

streamlit run quickstart.py

注:必须在命令行下运行streamlit run命令,在集成开发工具上不行。

在这里插入图片描述
简而言之,Streamlit的工作方式如下:

  • 对于用户的每一次交互,整个脚本从头到尾执行一遍;
  • Streamlit基于UI组件的状态给变量赋值;
  • 缓存让Streamlit可以避免重复请求数据或重复计算;

2. 关于plotly

Plotly 是一个非常强大的开源数据可视化框架,它通过构建基于 HTML 的交互式图表来显示信息,可创建各种形式的精美图表。本文所说的 Plotly 指的是 Plotly.js 的 Python 封装,plotly本身是个生态非常复杂的绘图工具,它对很多编程语言提供接口。

安装通过 pip 进行即可。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple plotly

Plotly Python 其对应的官网为https://plotly.com/python/,上面有一些教程和官方API接口的查询。Plotly 是绘图基础库,它可以深度定制调整绘图,但是 API 复杂学习成本较高。一般plotly开发,使用 Jupyter 本地绘图。

Plotly_exprress 则是对 Plotly 的高级封装,上手容易,它对 Plotly 的常用绘图函数进行了封装。缺点是没有 plotly 那样自由度高。

3. 在Streamlit上绘制一个Plotly图

Streamlit支持多种可视化工具,包括:Matplotlib、bokeh、Seaborn、Plotly、PyDeck等,对于Plotly可视化库,使用st.plotly_chart()接口实现。

import streamlit as st
import plotly.express as px
import pandas as pd

df = px.data.gapminder()
st.write('欢迎使用Plotly express可视化库!')

fig = px.scatter(df.query("year==2007"), x="gdpPercap", y="lifeExp",
          size="pop", color="continent",
                 hover_name="country", log_x=True, size_max=60)
# Plot the data
st.markdown("#### Bubble Charts 图例")
st.plotly_chart(fig)
st.markdown("#### 参考代码")
code = '''
        采用高度集成的plotly.express,代码比较简单:
    
            st.write('欢迎使用Plotly express可视化库!')

            fig = px.scatter(df.query("year==2007"), x="gdpPercap", y="lifeExp",
                      size="pop", color="continent",
                             hover_name="country", log_x=True, size_max=60)
                             
            st.plotly_chart(fig)                 
'''
st.markdown(code)

在这里插入图片描述
通过上述过程,数据分析工程师可以在不掌握前段可视化技术的情况下,就像使用Matplotlib、Seaborn一样可视化分享研究成果。

参考:

[1]. 周先森爱吃素. Plotly基础教程. CSDN博客. 2020.10
[2]. 地学小哥. 03_Streamlit试用体会.简书. 2020.02

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖永威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值