数据可视化实践之美

简介:

随着DT时代的到来,传统的统计图表很难对复杂数据进行直观地展示。这几年数据可视化作为一个新研究领域也变得越来越火。成功的可视化,如果做得漂亮,虽表面简单却富含深意,可以让观测者一眼就能洞察事实并产生新的理解。可视化(visualization)和可视效果(visual)两个词是等价的,表示所有结构化的信息表现方式,包括图形、图表、示意图、地图、故事情节图以及不是很正式的结构化插图。


基本的可视化展现方式,如条形图、折线图、饼图、雷达图可以很容易通过各种软件(如Excel)容易生成,这些方法是常见可视化问题的良好且强大的解决方案。然而,使用这些方法的最佳方式局限于一些特定的数据类型,而且其标准型和普遍性意味着它们基本无法达到新颖性。如果对地理空间数据、社会网络关系、多维数据进行可视化,直观地传递数据期望表达的信息是需要特定的图表类型来展示。


让我们一起来看几个经典的可视化,观测它们是如何充分利用其源数据结构的。


1

“美国大选”数据可视化


在美国大选期间,美国媒体做了不少与之相关的数据报道,让我们来回顾一下,他们是如何将美国大选的数据可视化的吧!


下图为各洲“选举人票”的占比情况。作者设计了两种表现方法,一是以“选举人票”的分布做为底图,一是直接以美国地图作为底图。除此图上方双方选举人票总体数量对比外,鼠标移至各洲上方还能显示各洲“选举人票”数量及对希拉里与特朗普的支持比例。


0?wx_fmt=gif&wxfrom=5&wx_lazy=1


关于第三方选举人影响的情况(在只有两种选择和有四个选举人的情况下,选民的态度又是怎样呢?


0?wx_fmt=gif&wxfrom=5&wx_lazy=1


特朗普的粉丝更多的是公立学校出身,而希拉里的则大都为精英阶层。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


希拉里的粉丝大都较为“书生气”,使用与书籍相关的词汇,其中有很多被认证为教授或博士;而特朗普的粉丝更加喜欢流行文化,他们可能同时是流行歌手的粉丝,也更加关注球类运动等。


2

社会关系可视化


社会网络分析(SocialNetwrok Analysis,SNA)是在传统的图与网络的理论之上对社会网络数据进行分析的方法。随着人类进入了移动互联网时代,社会网络数据成了重要的数据资源。SNA的本质是利用各样本间的关系来分析整体样本的群落现象,并分析样本点在群落形成中的作用以及群落间的关系。


近几年手机端网游越来越重视游戏用户社交性设计。这款游戏的玩法设计特别强调强社交性:用户可以在游戏内组建家族,家族成员有不同的职务等级,用户也可以在游戏内给好友赠送道具。我们从数据库中收集抽取了部分用户的家族数据(Nodes)和好友沟通数据(Links)。其中Nodes数据集包括Id(用户ID)、Label(用户名称)、Group(所属家族)、Level(等级)的信息;Links数据集包括Source(发起方)、Target(接收方)和Weight(斗气数量)信息。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


从网络图可以看出,不同家族的成员基本紧密联系在一起,并通过一些关键成员与其他家族成员联系。例如我们发现右下角的那个社群的成员先通过user1用户、再通过user12用户跟其他社团成员联系在一个大网络图中。


我们也可以用Gephi软件快速绘制社会网络图,并对其进行美化。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


3

地理信息可视化


在第一个例子中,我们已经见识到了地理信息可视化的魅力。接下来我们简单了解下如何利用Remap包快速绘制可交互的地图数据可视化。目前托管在github,https://github.com/lchiffon/REmap。


百度迁徙图是近年来非常流行的一种地理信息可视化,可以通过连线动态查看人口流向。此处给大家绘制一幅动态航班图的地理信息可视化图。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


也可以利用Remap快速实现未来天气预报。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


还可以把一些各地举行的会议事件在地图上进行可视化展示,下图是2015年中国R语言会议在各个城市举行的可视化展示。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


城市热力图也是近年来非常流行的一种地理信息可视化方式,通过颜色的深浅表示不同地区的实际数值大小。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


通过以上的几个小例子,相信大家已经惊叹于上面的可视化效果,给人眼前一亮、耳目一新的感觉。以上可视化并未运用到很高深的技术,如果你也掌握以下一些可视化知识,也能绘制出以上图表的效果。接下来,就给大家介绍几个常用的交互数据可视化手段:D3、Echarts和R(R是一款数据分析挖掘软件,但是其拥有强大的可视化功能,并能集成D3、Echarts图库,实现交互绘图)。


1.

D3https://d3js.org/


D3 是最流行的可视化库之一,它被很多其他的表格插件所使用。它允许绑定任意数据到DOM,然后将数据驱动转换应用到Document中。你可以使用它用一个数组创建基本的HTML表格,或是利用它的流体过度和交互,用相似的数据创建惊人的SVG条形图。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


比如D3可以非常容易地绘制交互桑基图。桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、材料成分、金融等数据的可视化分析。桑基图最明显的特征就是,始末端的分支宽度总和相等,即所有主支宽度的总和应与所有分出去的分支宽度的总和相等,保持能量的平衡。点击link查看动图。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


可以通过D3对SunburstPartition可视化探索。通过解析布点获得的用户行为路径数据,我们可以用最简单与直接的方式将每个用户的事件路径点击流数据进行统计,并用数据可视化方法将其直观地呈现出来。 


D3.js是当前最流行的数据可视化库之一,我们可以利用其中的Sunburst Partition来刻画用户群体的事件路径点击状况。从该图的圆心出发,层层向外推进,代表了用户从开始使用产品到离开的整个行为统计;Sunburst事件路径图可以快速定位用户的主流使用路径。


通过提取特定人群或特定模块之间的路径数据,并使用Sunburst事件路径图进行分析,可以定位到更深层次的问题。灵活使用Sunburst路径统计图,是我们在路径分析中的一大法宝。点击link查看动图。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


2.

EChartshttp://echarts.baidu.com/


ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


ECharts3还新增更多图表类型,更好的满足不同数据的处理需求更多的搭配方案让你的数据呈现方式更个性和完美。


比如地图信息可视化。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1 640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


利用ECharts绘制桑基图。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


3.

Rhttps://www.r-project.org/


R语言是一套开源的数据分析解决方案,几乎可以独立完成数据处理、数据可视化、数据建模及模型评估等工作,而且可以完美配合其他工具进行数据交互。5) R语言拥有顶尖的制图功能。不仅有 lattcie包、ggplot2包对复杂数据进行可视化,更有rCharts包、recharts包、plotly包实现数据交互可视化,甚至可以利用功能强大的shiny包实现R与web整合部署,构建网页应用,帮助不懂CSS,HTML的用户能利用R快速搭建自己的数据分析APP应用。


比如我们可以绘制动态交互的气泡图,通过下面的时间轴播放动态查看不同年份的气泡情况。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


也可以利用networkD3包调用D3.js库,绘制社会网络图和桑基图。


640?wx_fmt=png&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

640?wx_fmt=png&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


好了,以上就简单介绍了几种这几年比较流行的数据展现方式和常用的工具,后续会给大家陆续带来详细的技术实现。


原文发布时间为:2017-04-23

本文作者:daniel.xie(谢佳标

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关文章
|
2月前
|
数据可视化 数据挖掘 大数据
Python数据分析中的数据可视化技术应用
数据可视化是数据分析中至关重要的一环,能够帮助分析师和决策者更直观地理解数据。本文将介绍Python数据分析中常用的数据可视化技术,包括Matplotlib、Seaborn和Plotly,并结合实际案例演示它们在数据分析中的应用。
|
2月前
|
数据可视化 数据挖掘 数据处理
深入浅出:使用Python实现数据可视化
在海量数据的时代,如何有效地理解和呈现数据成为了一个挑战。本文将介绍如何使用Python中的Matplotlib和Seaborn库来实现数据的可视化,使复杂的数据集通过图形的方式变得易于理解。我们将从基础知识开始,逐步深入到创建多种类型的图表,包括条形图、折线图、散点图等,并探讨如何对图表进行美化和高级定制,以满足不同场景的需求。此外,本文还将简要介绍如何使用Pandas进行数据处理,为数据可视化做准备。无论你是数据分析师、科研人员还是普通爱好者,本文都能帮助你更好地利用Python实现数据的可视化展示。
38 0
|
4月前
|
SQL 数据可视化 大数据
数据可视化系列-01大数据可视化基础
数据可视化系列-01大数据可视化基础
数据可视化系列-01大数据可视化基础
|
7月前
|
机器学习/深度学习 自然语言处理 数据可视化
数据可视化:理论与技术
良好的数据可视化不仅仅是呈现数字,而是试图围绕故事阐明我们的数据。在讲故事的同时使我们的数据栩栩如生,并在原始信息与现实世界的影响和见解之间建立联系。
72 0
|
8月前
|
数据可视化 索引 Python
数据可视化入门
数据可视化入门
|
10月前
|
Web App开发 数据可视化 前端开发
数据可视化|青训营笔记
数据可视化|青训营笔记
64 0
|
数据可视化 前端开发 小程序
给大家介绍几个数据分析,数据可视化的网站合集
给大家介绍几个数据分析,数据可视化的网站合集
499 0
给大家介绍几个数据分析,数据可视化的网站合集
|
数据可视化 定位技术
数据可视化基础|青训营笔记
数据可视化基础|青训营笔记
225 0
|
数据可视化 数据挖掘
动手学习数据分析(四)——数据可视化
动手学习数据分析(四)——数据可视化
107 0
动手学习数据分析(四)——数据可视化
|
数据采集 存储 分布式计算
【数据可视化】数据可视化之美——用专家的眼光洞察数据
【数据可视化】数据可视化之美——用专家的眼光洞察数
209 0
【数据可视化】数据可视化之美——用专家的眼光洞察数据