谁能帮你不用懂得复杂的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 npchart_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 pddf = 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

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

  1. 可爱的 Python: 使用 mechanize 和 Beautiful Soup 轻松收集 Web 数据

    可爱的 Python: 使用 mechanize 和 Beautiful Soup 轻松收集 Web 数据 使用 Python 工具简化 Web 站点数据的提取和组织 David Mertz, Ph. ...

  2. 数据分析师能用到mysql_浅谈数据分析师的必备技能SQL

    一.了解SQL的必要性 俗话说"巧妇难为无米之炊",没有数据怎么分析.而SQL对于你来说就好比电脑的键盘鼠标,虽说没有了它也能照常运行,但对使用它的人来说灵活性却下降了许多.而这一 ...

  3. 大数据分析师高级证书_数据分析师资格证书好考吗_大数据分析师认证

    数据分析师资格证书好考吗_大数据分析师认证 为了适应大数据时代的要求,数据分析这一工作需要更加正规化.专业化以及职业化,因此,数据分析师应运而生,成了较多人争相报考的科目.那么 一方面,据小编了解,数 ...

  4. Python套接字Socket读取http网页web数据

    Python套接字Socket读取http网页web数据 基于Python的套接字Socket,读取网页web的数据,以读取百度首页的内容为例,程序代码如下: import socketdef get ...

  5. 客户案例 | 低代码上的西门子,可视化看板优化生产

    关键发现 用户痛点:工厂生产部分指标报告依靠人工收集整理,费时费力时效性差,难以帮助管理层实时了解生产实况和做出及时决策. 解决方案:利用西门子低代码开发实时更新数据的可视化看板,更加智能灵活地管控生 ...

  6. python与网页交互_可爱的 Python: 使用 mechanize 和 Beautiful Soup 轻松收集 Web 数据

    可爱的 Python 使用 mechanize 和 Beautiful Soup 轻松收集 Web 数据 使用 Python 工具简化 Web 站点数据的提取和组织 David Mertz 2010 ...

  7. 0基础学习数据分析师,这样做人人都是数据分析师

    2018已成过去,待春节过完又到了离职择业的高峰期,或者可以说又到了开始考虑规划新一年中预期目标的路线图了.职业选择是其中必不可少的线路图至关重要,甚至是临驾于行业之上,因为无论在哪个行业当职业职位做 ...

  8. linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx

    linux下实现web数据同步的四种方式(性能比较)教程 实现web数据同步的四种方式=======================================1.nfs实现web数据共享2.rs ...

  9. python数据分析师工作内容_小白入行数据分析师3年-工作内容复盘分享含代码(一)-Python篇介绍...

    前言 个人作为互联网行业数据分析师工作已有3年之久,日常工作中碰到过问题,也在解决的问题过程中学到了很多.作为组内技术较为资深的组员,也经常在周会中安排环节给组内人员进行知识分享,以及日常帮助同事解决 ...

  10. 宜搭低代码与Faas构建数据看板

    写在前面 数字化办公兴起,企业改变办公方式迫在眉睫,低代码是一个发展方向 目录 写在前面 环境及目的 表单&连接器&Faas 表单 连接器&Faas Faas 连接器配置 结语 ...

最新文章

  1. RouterOS连载3:架设PPPoE服务
  2. 万年历c语言编程代码_C语言高效编程与代码优化~
  3. [C程序设计语言]第一部分
  4. 表单中去掉重置和提交按钮和搜索框
  5. python是什么意思中文、好学吗-Python的前景和Python好不好学呢?
  6. 整合hibernate4到spring4mvc框架
  7. Ogg For Bigdata 同步Oracle数据到KAFKA(包括初始化历史数据)
  8. 零基础学习C语言必读书籍
  9. 汇编语言(王爽版)实验一
  10. 佳能相机快门测试软件不收费,【有图】佳能单反查快门的免费软件 EOSMSG4.0 新测好用-蜂鸟网...
  11. 密码学系列 - 椭圆曲线 ECC - ED25519
  12. 《灵魂中转站》上线 春来变身“最有型死神”
  13. 移动端 自适应布局方案
  14. U盘装系统,电脑无法识别U盘解决方案
  15. TP link driver - TL-WN823N linux驱动
  16. 傅里叶变换与傅里叶级数(复习笔记)
  17. TFN TD11M 观察手用 手持式热像仪双光谱 双光谱测距热成像仪
  18. python求集合的子集和子集个数
  19. Halcon 异步抓取图像,图像滤波,获取图像边缘,分割边缘为线段和圆弧,计算长度 分析
  20. 程序员必须掌握的英文单词(二)

热门文章

  1. TensorFlow 2.1.0 使用 TFRecord 转存与读取图片
  2. 日期插件(默认显示当前日期)---年月
  3. CSS基础--美化视觉效果
  4. plus project的mpp文件导出问题和plus project的xml导出
  5. python高级练习题:法贝热复活节彩蛋压测试【难度:5级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  6. JVM-G1垃圾回收器:G1回收流程(Rset、CSet、SATB)
  7. has an unsupported return type
  8. SAP系统中的区域菜单(Area Menu)及SPRO的使用技巧
  9. Android 点击图片全屏预览 -——ZoomPreviewPicture默认预览使用
  10. frm mysql触发器_使用mysqlfrm恢复frm表结构的方法