[转载] 交互式数据可视化在Python中用Bokeh实现
参考链接: Python | 使用Bokeh进行数据可视化
文章转载自:http://www.zuimoban.com/jiaocheng/python/6615.html
Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。这是Bokeh与其它可视化库最核心的区别。正如下图所示,它说明了Bokeh如何将数据展示到一个Web浏览器上的流程。 正如你所看到的,Bokeh捆绑了多种语言(Python, R, lua和Julia)。这些捆绑的语言产生了一个JSON文件,这个文件作为BokehJS(一个Javascript库)的一个输入,之后会将数据展示到现代Web浏览器上。
Bokeh可以像D3.js那样创建简洁漂亮的交互式可视化效果,即使是非常大型的或是流数据集也可以进行高效互动。Bokeh可以帮助所有人快速方便地创建互动式的图表、控制面板以及数据应用程序。
Bokeh能为像我这样的数据科学家提供什么? 我起初是作为一名商业智能从业者(BIprofessional)开始我的数据科学之旅的,随后,又逐渐学习了预测建模,数据科学和机器学习。我主要使用QlikView和Tableau进行数据可视化,用SAS和Python来做预测分析和数据分析。我几乎没有用过JavaScript。
因此,对于我之前所有的数据产品或想法,我只能要么将其外包要么通过网站线框图向别人展示,这两者都不适合创建快速原型。现在,有了Bokeh,我就可以继续使用Python,并且快速创建这些原型。
Bokeh的优势: Bokeh允许你通过简单的指令就可以快速创建复杂的统计图, Bokeh提供到各种媒体,如HTML,Notebook文档和服务器的输出 我们也可以将Bokeh可视化嵌入flask和django程序 Bokeh可以转换写在其它库(如matplotlib, seaborn和ggplot)中的可视化 Bokeh能灵活地将交互式应用、布局和不同样式选择用于可视化
Bokeh面临的挑战: 与任何即将到来的开源库一样,Bokeh正在经历不断的变化和发展。所以,你今天写的代码可能将来并不能被完全再次使用。 与D3.js相比,Bokeh的可视化选项相对较少。因此,短期内Bokeh无法挑战D3.js的霸主地位。
综合Bokeh的优点及其面临的挑战,Bokeh是当前用于快速开发原型产品的理想工具。然而,如果你想在产品的环境下搞点新东西,D3.js可能仍然是你最好的选择。
用Bokeh实现可视化 Bokeh提供了强大而灵活的功能,使其操作简单并高度定制化。它为用户提供了多个可视化界面,如下图所示: 图表(Charts):一个高级接口(high-level interface),用以简单快速地建立复杂的统计图表。 绘图(Plotting):一个中级接口(intermediate-level interface),以构建各种视觉符号为核心。 模块(Models):一个低级接口(low-level interface),为应用程序开发人员提供最大的灵活性。
本文中,我们仅涉及前两个接口,图表(Charts)和绘图(Plotting)。
图表 如上所述,它是一个高级接口,用于通过标准的可视化方式呈现信息。这些方式包括箱形图、柱状图、面积图、热图、甜甜圈图和许多其它图形。你只需输入数据框(data frames)、numpy数组或字典就可以生成这些图。
让我们来看看创建一个图表的通用方法: 1. 导入库和函数/方法 2. 准备数据 3. 设置输出模式(Notebook文档、Web浏览器或服务器) 4. 创建图表并选择图表的样式(如果需要) 5. 可视化图表
为了更好地理解这些步骤,让我用下面的例子来演示一下:
图表范例-1:使用Bokeh创建一个柱状图并在Web浏览器上显示
我们将遵循上述列出的步骤来创建一个图表: 在上面的图表中,你可以看到顶部的工具选项(缩放、调整大小、重置、旋转缩放),这些工具可以帮助你与图表进行互动。同时,你也可以看到多个图表选项(图例、X轴名标注、Y轴名标注、坐标网格线、宽度、高度等)和各种图表的范例。
图表范例-2:在Notebook文档中,利用箱线图比较IRIS数据集中的萼片长度(sepal length)和花瓣长度(petal length)的分布情况
要创建这个可视化图表,我首先要使用Sklearn库导入IRIS数据集。然后,按照上述步骤在ipythonNotebook文档中进行图表可视化。 图表范例-3:创建一个线图到Bokeh服务器
在绘制可视化图表到Bokeh服务器之前,你首先需要运行服务器。
如果你使用的是conda包,你可以在任何目录下使用运行命令“bokeh-server”。如果不是,“python ./bokeh-server”通常也可以。 在Bokeh服务器上进行可视化绘图有多个优点: 图表有更多的受众 可对大数据集进行交互式可视化 可根据数据流自动更新图表 创建控制面板和应用程序
开始在Bokeh服务器上绘图之前,我先运行了“bokeh-server”指令对其进行初始化,然后再运行用于可视化的相关指令。 绘图 Plotting是一个中级接口,是以构建视觉符号为核心的接口。在这里,你可以综合各种视觉元素(点、圆、线、补丁和许多其它元素)和工具(悬停、缩放、保存、重置和其它工具)来创建可视化。
使用Bokeh的Plotting接口创建的图表自带一组默认的工具和视觉效果。绘图可按照以下步骤进行: 1. 导入库、方法或函数 2. 选择输出方式(Notebook文档、Web浏览器、服务器) 3. 激活图(类似matplotlib) 4. 执行后续的绘图操作,这将影响已经生成的图形。 5. 图表可视化
为了更好地理解这些步骤,让我举例演示:
绘图范例-1:在Notebook文档中创建二维散点图(正方形标记) 同样,你可以创建各种其它类型的图:如线、角和圆弧、椭圆、图像、补丁以及许多其它的图。
绘图范例-2:将两种视觉元素合并在一张图中 绘图范例-3:为上图添加一个悬停工具和坐标轴标签 绘图范例-4:使用纬度和经度数据来绘制印度地图
注:我已经有一个CSV格式的印度边界的纬度和经度的多边形数据。我将使用该数据来绘图。 在这里,我们将使用补丁绘图,让我们看看下面的命令: 结语 在本文中,我们讨论了用Bokeh创建可视化以及如何将可视化结果呈现在Notebook文档、html文档以及bokeh服务器上。我们还谈到了如何使用绘图接口创建个性化的可视化图表,通过该功能,你可以将多种视觉元素结合到一起来展示数据信息。
[转载] 交互式数据可视化在Python中用Bokeh实现相关推荐
- python bokeh教程_交互式数据可视化在Python中用Bokeh实现
Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库.这是Bokeh与其它可视化库最核心的区别.正如下图所示,它说明了Bokeh如何将数据展示到一个Web浏览器上的流程. 正如你 ...
- python bokeh_使用Bokeh在Python中进行交互式数据可视化
python bokeh Bokeh prides itself on being a library for interactive data visualization. Bokeh以成为交互式数 ...
- pythonweb数据可视化_独家 | 基于Python实现交互式数据可视化的工具(用于Web)
翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一门关于数据可视化的数据科学硕士课程.我们的数据科学硕士项目是一 ...
- python基于web可视化_独家 | 基于Python实现交互式数据可视化的工具(用于Web)
转自:数据派ID:datapi 作者:Alark Joshi 翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一 ...
- python交互式数据可视化_基于Python实现交互式数据可视化的工具,你用过几种?...
作者:Alark Joshi 翻译:陈雨琳 来源:数据派THU(ID:DatapiTHU) 我教授了一门关于数据可视化的数据科学硕士课程.我们的数据科学硕士项目是一个为期15个月的强化项目,这个项目已 ...
- python实现数据可视化软件_基于Python实现交互式数据可视化的工具
作者:Alark Joshi 翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一门关于数据可视化的数据科学硕士课 ...
- python动态交互图表_Python 调用 matplotlib 实现交互式数据可视化图表案例
交互式的数据可视化图表是 New IT 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是, ...
- 分形、大自然的分形几何、数据可视化、Python绘图
分形.大自然的分形几何.数据可视化.Python绘图 中国传统中的『分形』 大自然的分形几何 数据可视化 本系列采用turtle.matplotlib.numpy这三个Python工具,以分形与计算机 ...
- [译] VINE:一种开源的神经进化(Neuroevolution)交互式数据可视化工具
原文地址:VINE: An Open Source Interactive Data Visualization Tool for Neuroevolution 原文作者:Uber Engineeri ...
最新文章
- java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码
- 通过regedt查看计算机密码,win10系统通过注册表设置定时更换密码提醒的处理步骤...
- php html补全,PHP实现HTML标签自动补全代码
- python随机画散点图-python散点图实例之随机漫步
- LINQ学习之旅——准备(2)
- python中的json_简单介绍Python中的JSON使用
- Marketing Cloud contact里和twitter相关的数据
- spring security:基于MongoDB的认证
- 超分辨率分析(四)--Deep Image Prior
- size()计算jquery对象中元素的个数
- 207.课程表(力扣leetcode) 博主可答疑该问题
- 读书笔记 摘自:《斯坦福极简经济学》
- binwalk和foremost的使用。
- 易语言解析html实例,易语言总使用正则表达式实例解析
- 国产FPGA高云GW1NSR-4C,集成ARM Cortex-M3硬核
- Flutter 实现风车加载动画组件
- 看一遍都懂的数组遍历~确定不试试?
- FinClip小程序开放平台灰度发布上线,实现你对“千人千面”的所有创想
- 方韦——鸦滩的小方韦
- cf四大战区合区列表?
热门文章
- 【CCCC】L3-026 传送门 (30分),splay(待复盘)
- HDOJ水题集合1:最小生成树(Kruskal)
- 用iTunes管理iPhone
- nodemcu引脚_一、ESP32开发板NodeMCU-32S简介
- SQL Server高级查询之子查询(子查询非典型应用)
- js总结1:数据类型
- javascript中ajax的优缺点
- android开发比例图表,Android开发中如何使用绘制图表
- bzoj 3027: [Ceoi2004]Sweet(母函数+组合数)
- 图像仿射变换 图像平移 python实现