文章目录
1 可视化概述
1.1 什么是数据可视化
数据可视化是指将大型数据集中的数据以图形图像形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程。
数据可视化技术的基本思想是将数据库中每一个数据项作为单个图元素表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表示,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析。
1.2 可视化的发展历程
霍乱地图分析了霍乱患者分布与水井分布之间的关系,发现在有一口井的供水范围内患者明显偏多,据此找到了霍乱爆发的根源是一个被污染的水泵 。
数据可视化历史上的另一个经典之作是1857年“提灯女神”南丁格尔设计的**“鸡冠花图”(又称玫瑰图)**,它以图形的方式直观地呈现了英国在克里米亚战争中牺牲的战士数量和死亡原因,有力地说明了改善军队医院的医疗条件对于减少战争伤亡的重要性。
20世纪50年代,随着计算机的出现和计算机图形学的发展,人们可以利用计算机技术在电脑屏幕上绘制出各种图形图表,可视化技术开启了全新的发展阶段。最初,可视化技术被大量应用于统计学领域,用来绘制统计图表,比如圆环图、柱状图和饼图、直方图、时间序列图、等高线图、散点图等,后来,又逐步应用于地理信息系统、数据挖掘分析、商务智能工具等,有效促进了人类对不同类型数据的分析与理解。
随着大数据时代的到来,每时每刻都有海量数据在不断生成,需要我们对数据进行及时、全面、快速、准确的分析,呈现数据背后的价值,这就更需要可视化技术协助我们更好地理解和分析数据,可视化成为大数据分析最后的一环和对用户而言最重要的一环。
1.3 可视化的重要作用
在大数据时代,可视化技术可以支持实现多种不同的目标:
(1)观测、跟踪数据
(2)分析数据
(3)辅助理解数据
(4)增强数据吸引力
2 可视化工具
2.1 入门级工具
Excel是微软公司的办公软件Office家族的系列软件之一,可以进行各种数据的处理、统计分析和辅助决策操作,已经广泛地应用于管理、统计、金融等领域。
2.2 信息图表工具
信息图表是信息、数据、知识等的视觉化表达,它利用人脑对于图形信息相对于文字信息更容易理解的特点,更高效、直观、清晰地传递信息,在计算机科学、数学以及统计学领域有着广泛的应用。
(1)Google Chart API
谷歌公司的制图服务接口Google Chart API,可以用来为统计数据并自动生成图片,该工具使用非常简单,不需要安装任何软件,可以通过浏览器在线查看统计图表。
(2)D3
D3是最流行的可视化库之一,是一个用于网页作图、生成互动图形的JavaScript函数库,提供了一个D3对象,所有方法都通过这个对象调用。D3能够提供大量线性图和条形图之外的复杂图表样式,例如Voronoi图、树形图、圆形集群和单词云等。
(3)Visual.ly
Visual.ly是一款非常流行的信息图制作工具,非常好用,不需要任何设计相关的知识,就可以用它来快速创建自定义的、样式美观且具有强烈视觉冲击力的信息图表。
(4)Tableau
Tableau是桌面系统中最简单的商业智能工具软件,更适合企业和部门进行日常数据报表和数据可视化分析工作。Tableau实现了数据运算与美观的图表的完美结合,用户只要将大量数据拖放到数字“画布”上,转眼间就能创建好各种图表。
(5)大数据魔镜
大数据魔镜是一款优秀的国产数据分析软件,它丰富的数据公式和算法可以让用户真正理解探索分析数据,用户只要通过一个直观的拖放界面就可创造交互式的图表和数据挖掘模型。
2.3 地图工具
地图工具在数据可视化中较为常见,它在展现数据基于空间或地理分布上有很强的表现力,可以直观地展现各分析指标的分布、区域等特征。当指标数据要表达的主题跟地域有关联时,就可以选择以地图作为大背景,从而帮助用户更加直观地了解整体的数据情况,同时也可以根据地理位置快速地定位到某一地区来查看详细数据。
下图就是以数据地图形式呈现的2008年世界各国GDP数据,图中,颜色越深的国家,其GDP越高。
(1)Google Fusion Tables
Google Fusion Tables让一般使用者也可以轻松制作出专业的统计地图。该工具可以让数据表呈现为图表、图形和地图,从而帮助发现一些隐藏在数据背后的模式和趋势。
(2)Modest Maps
Modest Maps是一个小型、可扩展、交互式的免费库,提供了一套查看卫星地图的API,只有10KB大小,是目前最小的可用地图库,它也是一个开源项目,有强大的社区支持,是在网站中整合地图应用的理想选择。
(3)Leaflet
Leaflet是一个小型化的地图框架,通过小型化和轻量化来满足移动网页的需要。
2.4 时间线工具
时间线是表现数据在时间维度的演变的有效方式,它通过互联网技术,依据时间顺序,把一方面或多方面的事件串联起来,形成相对完整的记录体系,再运用图文的形式呈现给用户。时间线可以运用于不同领域,最大的作用就是把过去的事物系统化、完整化、精确化。自2012年Facebook在F8大会上发布了以时间线格式组织内容的功能后,时间线工具在国内外社交网站中开始大面积流行。
下图显示了我国户籍制度在1994年到2014年间随时间的演变情况,它采用了时间线表示方法。
(1)Timetoast
Timetoast是在线创作基于时间轴事件记载服务的网站,提供个性化的时间线服务,可以用不同的时间线来记录你某个方面的发展历程、心理路程、进度过程等等。Timetoast基于 flash 平台,可以在类似 flash时间轴上任意加入事件,定义每个事件的时间、名称、图像、描述,最终在时间轴上显示事件在时间序列上的发展,事件显示和切换十分流畅,随着鼠标点击可显示相关事件,操作简单。
(2)Xtimeline
Xtimeline 是一个免费的绘制时间线的在线工具网站,操作简便,用户通过添加事件日志的形式构建时间表,同时也可给日志配上相应的图表。不同于Timetoast的是,Xtimeline是一个社区类型的时间轴网站,其中加入了组群功能和更多的社会化因素,除了可以分享和评论时间轴外,还可以建立组群讨论所制作的时间轴。
2.5 高级分析工具
(1) R
R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具,使用难度较高。R的功能包括数据存储和处理系统、数组运算工具(具有强大的向量、矩阵运算功能)、完整连贯的统计分析工具、优秀的统计制图功能、简便而强大的编程语言,可操纵数据的输入和输出,实现分支、循环以及用户可自定义功能等,通常用于大数据集的统计与分析。
(2)Weka
Weka是一款免费的、基于Java环境的、开源的机器学习以及数据挖掘软件,不但可以进行数据分析,还可以生成一些简单图表。
(3)Gephi
Gephi是一款比较特殊也很复杂的软件,主要用于社交图谱数据可视化分析,可以生成非常酷炫的可视化图形。
3 可视化典型案例
3.1 全球黑客活动
安全供应商Norse打造了一张能够反映全球范围内黑客攻击频率的地图(http://map.ipviking.com),它利用Norse 的“蜜罐”攻击陷阱显示出所有实时渗透攻击活动。如下图所示,地图中的每一条线代表的都是一次攻击活动,借此可以了解每一天、每一分钟甚至每一秒世界上发生了多少次恶意渗透。
3.2 互联网地图
为了探究互联网这个庞大的宇宙,俄罗斯工程师 Ruslan Enikeev 根据 2011 年底的数据,将全球 196 个国家的 35 万个网站数据整合起来,并根据 200 多万个网站链接将这些“星球”通过关系链联系起来,每一个“星球”的大小根据其网站流量来决定,而“星球”之间的距离远近则根据链接出现的频率、强度和用户跳转时创建的链接来确定,由此绘制得到了“互联网地图”(http://internet-map.net)。
3.3 编程语言之间的影响力关系图
Ramio Gómez利用来自Freebase上的编程语言维护表里的数据,绘制了编程语言之间的影响力关系图,如下图所示,图中的每个节点代表一种编程语言,之间的连线代表该编程语言对其他语言有影响,有影响力的语言会连线多个语言,相应的节点也会越大。
3.4 百度迁徙
2014年1月25日晚间,央视与百度合作,启用百度地图定位可视化大数据播报春节期间全国人口迁徙情况,引起广泛关注。
3.5 世界国家健康与财富之间的关系
如图下图所示,“世界国家健康与财富之间的关系”利用可视化技术,把世界上200个国家,从1810年到2010年历时200年其各国国民的健康、财富变化数据(收集了1千多万个数据)制作成三维动画进行了直观展示(http://www.moojnn.com/Index/whn)。
3.6 3D可视化互联网地图APP
3D可视化是描绘和理解数据的一种手段,是数据的一种表征形式,并非模拟技术。3D可视化以一种独特的立体视角为用户呈现数据,可以帮助用户发现一些在2D模式下无法察觉的内容。Peer 1开发了一个称为“互联网地图”的APP(如下图),这是一个建立在小盒子形式上的3D地图。
4 可视化工具实践
4.1 D3可视化库使用指南
(1)D3可视化库介绍
D3 的全称是(Data-Driven Documents),顾名思义,它是一个被数据驱动的文档。听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的
学习 D3 最好的地方是:http://d3js.org/
(2)D3可视化库的使用
D3 是一个 JavaScript 函数库,并不需要通常所说的“安装”。它只有一个文件,在 HTML 中引用即可。有两种方法:
-
方法一:下载 D3.js 的文件,解压后,在 HTML 文件中包含相关的 js 文件即可。
-
方法二:可以直接包含网络的链接,这种方法较简单,但使用的时候要保持网络连接有效,不能在断网的情况下使用。
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
(3)预备知识
学习D3可视化库需要的一些基础知识如下:
- HTML:超文本标记语言,用于设定网页的内容,比如和
标签
- CSS:层叠样式表,用于设定网页的样式
- JavaScript:一种直译式脚本语言,用于设定网页的行为
- DOM:文档对象模型,用于修改文档的内容和结构
- SVG:可缩放矢量图形,用于绘制可视化的图形
(4)基本操作