大数据开发过程中,我们常常需要向别人展示一些统计结果,有时候还是实时的统计结果。最好能以网页方式提供,让别人在他的机器上,使用浏览器也能访问。这时候统计工具往往使用Python,而把分析图表画出来使用JavaScript,需要搭建web服务,还涉及中间过程的数据衔接。而Dash能帮我们实现以上所有的工作。
Dash是Python的一个库,使用pip即可安装。用它可以启动一个http server, python调用它做图,而它内部将这些图置换成JavaScript显示,进行数据分析和展示。
安装
其中html与网页相关,比如用它实现Title显示及一些与用户的交互操作,core是绘图部分,像我们常用的柱图,饼图,箱图,线图,都可以用它实现。
简单demo
(1) 代码
(2) 运行结果
(3) 注意事项
需要注意的是最后一句中的宿主机host='0.0.0.0',默认是127.0.0.1,这样在其它机器访问本机启动的dash以及在docker启动dash时可能遇到问题,设置成0.0.0.0后,通过本机上的任意一个IPV4地址都能访问到它。
与Flask相结合支持显示多个页面
用上述方法,可以提供单个网页显示,但如果需要展示的内容很多,或者需要分类展示时,就需要提供多个界面以及在各个界面间跳转。Flask是一个使用 Python 编写的轻量级 Web 应用框架,Dash的Web框架就是调用它实现的,在程序中结合二者,即可以显示一网页,还能实现Dash画图功能,还能相互调用,具体见下例。
此时,在浏览器中分别打开:http://0.0.0.0:8501/, http://0.0.0.0:8501/test,http://0.0.0.0:8501/dash,这时可以分别看dash生在网页和普通网页。
各种常用图
(1) 环境
三个例中使用的数据库中sklearn自带的iris数据集的前30个实例,以test*方式调用每种绘图函数
(2) 线图
(3) 柱图
(4) 直方图
(5) 箱图
箱图比较特殊,它是按x的unique统计y的分布。
(6) 饼图
(7) 图表
参考
(1) 官方demo
https://dash.plot.ly/gallery
(2) 支持多个网页的另一种方法
https://stackoverflow.com/questions/51946300/setting-up-a-python-dash-dashboard-inside-a-flask-app
如想方便地复制粘贴代码,请通过我的csdn博客打开本文档:
搜索添加公众号:算法学习分享
领取专属 10元无门槛券
私享最新 技术干货