上一讲中,我给你讲了数据变换,今天讲一下数据可视化。如果你想做一名数据分析师,那么掌握可视化技能是必不可少的,因为在大部分情况下,老板更关心呈现的结果。

另外当这些可视化的结果呈现在你眼前时,你才能直观地体会到“数据之美”。图片在内容表达上,要远胜于文字,它不仅能体现数据真实性,还能给人很大的想象空间。

数据可视化的视图都有哪些?

在了解数据可视化的重要性之后,我们来看下,在数据可视化产品中,一般都包括哪些视图?

我们常用的可视化视图超过20种,分别包括:文本表、热力图、地图、符号地图、饼图、水平条、堆叠条、并排条、树状图、圆视图、并排圆、线、双线、面积图、双组合、散点图、直方图、盒须图、甘特图、靶心图、气泡图等。

你不用记住这些视图名称都是什么,因为在可视化工具中,操作面板上都会有这些图形可供选择。你看一眼就知道它是不是你想要的。

当然,你不仅要掌握这些视图的使用,更要了解使用它们背后的目的是什么,这里我整理了下,可以分为以下的9种情况:


在上面的这几种情况里,你也许想要看某个数据的分布情况,或者它随着时间的趋势,或者是局部与整体之间的关系等等。所以在设计之前,你需要思考的是,你的用户是谁,想给他们呈现什么,需要突出数据怎样的特点,以及采用哪种视图来进行呈现。

比如说,你想呈现某个变量的分布情况,就可以通过直方图的形式来呈现。如果你想要看两个变量之间的相关性及分布情况,可以采用散点图的形式呈现。

一个视图可能会有多种表达的目的,比如散点图既可以表明两个变量之间的关系,也可以体现它们的分布情况。同样,如果我想看变量的分布情况,既可以采用散点图的形式,也可以采用直方图的形式。

所以说,具体要采用哪种视图,取决于你想要数据可视化呈现什么样的目的。

数据可视化工具都有哪些?

那么如何把数据弄成上面说的视图呢?我们需要借助数据可视化的工具。

这些工具有很多,我从几个维度来给你介绍下。这几个维度分别是商业智能分析软件、可视化大屏、前端可视化组件和编程语言类。

商业智能分析

首先在商业智能分析软件中,最著名的当属Tableau和PowerBI了,另外中国帆软出品的FineBI也受到国内很多企业的青睐。

Tableau是国外的商业软件,收费不低。它适合BI工程师、数据分析分析师。如果可以熟练掌握Tableau,那么找到一份数据分析的工作是不难的。

PowerBI是微软出品的,可以和Excel搭配使用,你可以通过PowerBI来呈现Excel的可视化内容。

在BI行业中,Tableau和PowerBI远超其他BI产品,处于行业的领导者的位置。

另外FineBI是中国的帆软出品,针对国内使用更加友好,同时也倾向于企业级应用的BI。

可视化大屏类

大屏作为一种视觉效果强、科技感强的技术,被企业老板所青睐,可以很好地展示公司的数据化能力。这里给你介绍两款可视化大屏的软件DataV和FineReport。

DataV是一款可视化的工具,天猫双十一大屏就是用它呈现的。你要做的就是选择相应的控件,配置控件的样式、数据传输和交互效果等。当然DataV本身有一些免费的模板,你可以直接通过模板来创建。不过一些特殊的控件和交互效果还是需要购买企业版才行。

FineReport是帆软出品的工具,你可以看出他家的产品基本上都是Fine开头的,包括刚才给你介绍的FineBI。FineReport可以做数据大屏,也可以做可视化报表,在很多行业都有解决方案,操作起来也很方便。可以实时连接业务数据,对数据进行展示。

前端可视化组件

如果你想要成为一名前端数据可视化工程师的话,至少熟练掌握一种前端可视化组件是必不可少的,不少公司招聘“高级前端工程师”的时候,都要求熟悉几个开源数据可视化组件。

可视化组件都是基于Web渲染的技术的。所以你需要了解一下几个典型的Web渲染技术:Canvas、SVG和WebGL。简单来说,Canvas和SVG是HTML5中主要的2D图形技术,WebGL是3D框架。

Canvas适用于位图,也就是给了你一张白板,需要你自己来画点。Canvas技术可以绘制比较复杂的动画。不过它是HTML5自带的,所以低版本浏览器不支持Canvas。ECharts这个可视化组件就是基于Canvas实现的。

SVG 的中文是可缩放矢量图形,它是使用XML格式来定义图形的。相当于用点和线来描绘了图形,相比于位图来说文件比较小,而且任意缩放都不会失真。SVG经常用于图标和图表上。它最大的特点就是支持大部分浏览器,动态交互性实现起来也很方便,比如在SVG中插入动画元素等。

WebGL是一种3D绘图协议,能在网页浏览器中呈现3D画面技术,并且可以和用户进行交互。你在网页上看到的很多酷炫的3D效果,基本上都是用WebGL来渲染的。下面介绍的Three.js就是基于WebGL框架的。

在了解这些Web渲染协议之后,我再来带你看下这些常用的可视化组件: Echarts、D3、Three.js和AntV。

ECharts是基于H5 canvas的Javascript图表库,是百度的开源项目,一直都有更新,使用的人也比较多。它作为一个组件,可以和DataV、Python进行组合使用。

你可以在DataV企业版中接入ECharts 图表组件。也可以使用Python的Web框架(比如Django、Flask)+ECharts的解决方案。这样可以让你的项目更加灵活地使用到ECharts的图表库,不论你是用Python语言,还是用DataV的工具,都可以享受到ECharts丰富的图表库样式。

D3 的全称是Data-Driven Documents,简单来说,是一个 JavaScript 的函数库,因为文件的后缀名通常为“.js”,所以 D3 也常使用 D3.js 来称呼。

它提供了各种简单易用的函数,大大简化了 JavaScript 操作数据的难度。你只需要输入几个简单的数据,就能够转换为各种绚丽的图形。由于它本质上是JavaScript,所以用 JavaScript 也是可以实现所有功能的。

Three.js,顾名思义,就是Three+JS的意思。“Three”表示3D的意思,“Three.js”就是使用JavaScript来实现3D效果。Three.js是一款WebGL框架,封装了大量WebGL接口,因为直接用WebGL API写3D程序太麻烦了。

AntV是蚂蚁金服出品的一套数据可视化组件,包括了 G2、G6、F2和L7一共4个组件。其中G2应该是最知名的,它的意思是The grammar Of Graphics,也就是一套图形语法。它集成了大量的统计工具,而且可以让用户通过简单的语法搭建出多种图表。G6是一套流程图和关系分析的图表库。F2适用于移动端的可视化方案。L7提供了地理空间的数据可视化框架。

编程语言

使用数据分析工具,你一定离不开Python语言,当然也有人使用R语言。在用Python和R做数据分析的时候,一定少不了用到可视化的部分。

下面我简单介绍下,如何使用Python和R进行数据可视化。

在Python里包括了众多可视化库,比如Matplotlib、Seaborn、Bokeh、Plotly、Pyecharts、Mapbox和Geoplotlib。其中使用频率最高,最需要掌握的就是Matplotlib和Seaborn。

Matplotlib是Python的可视化基础库,作图风格和MATLAB类似,所以称为Matplotlib。一般学习Python数据可视化,都会从Matplotlib入手,然后再学习其他的Python可视化库。

下面这张图就是我拿Matplotlib做的蜘蛛图。


Seaborn是一个基于Matplotlib的高级可视化效果库,针对Matplotlib做了更高级的封装,让作图变得更加容易。你可以用短小的代码绘制更多维度数据的可视化效果图,比如下面这个例子:


在R中也有很多可视化库可供选择。其中包括了R自带的绘图包Graphics以及工具包ggplot2、ggmap、timevis和plotly等。

其中ggplot2是R语言中重要的绘图包,这个工具包将数据与绘图操作进行了分离,所以使用起来清晰明了,画出的图也漂亮。其实在Python里后来也引入了ggplot库,这样在Python中也可以很方便地使用到ggplot,而且和R语言中的ggplot2代码差别不大,稍作修改,就能直接在Python中运行了。

如何开始数据可视化的学习

其实很多企业都有在用商业分析软件,Tableau算是使用率很高的。如果你想做相关的数据分析研究,掌握一门语言尤其是Python还是很有必要的。如果你想要全面的学习数据可视化,你可以有以下的3个路径:

1. 重点推荐Tableau

Tableau在可视化灵活分析上功能强大,主要目标用户更多是较专业的数据分析师。同时在工作场景中使用率高,因此掌握Tableau对于晋升和求职都很有帮助。不过Tableau是个商业软件,收费不低。而且上手起来有一些门槛,需要一定数据基础。

2. 使用微图、DataV

前面我给你讲过八爪鱼的使用,微图和八爪鱼是一家公司的产品,使用起来非常方便,而且免费。当你用八爪鱼采集数据之后,就直接可以用微图进行数据可视化。

DataV是阿里推出的数字大屏技术,不过它是收费的产品。它最大的好处,就是可以分享链接,让别人可以在线浏览,不需要像Tableau一样安装客户端才能看到数据可视化的结果。另外DataV有一些模板,你直接可以使用。

你可以先使用微图和DataV作为你的数据可视化体验工具,因为成本低,上手起来快。这样你对数据可视化可以有个直观的了解。如果你想从事数据可视化这份工作,你可以花更多的精力去研究和学习Tableau。

3. Python可视化

Python是数据分析的首选语言,如果你不进行编程,可以使用我在上文中提到的数据可视化的工具。如果你的目标是个数据挖掘工程师,或者算法工程师,那么最重要的就是要了解,并且熟练掌握Python的数据可视化。

总结

我今天给你介绍了数据可视化的视图,然后带你讲解了当前主流的数据可视化工具。Tableau 和 PowerBI 是BI商业智能行业的领导者,是很多大公司里商业数据分析工作必备的工具。如果你使用Python作为数据分析的语言,那么也需要对Python数据可视化有所掌握。


最后给你留两道思考题吧。你平时的工作是怎样的,是否需要用到数据可视化技术呢?在数据可视化技术中,你都用过哪些工具,你觉得哪个工具使用起来比较顺手?

欢迎和我在评论区进行讨论,也欢迎你把这篇文章分享给你的朋友或者同事。