CategoryResourceRepost/极客时间专栏/数据分析实战45讲/第一模块:数据分析基础篇/14丨数据可视化:掌握数据领域的万金油技能.md
louzefeng d3828a7aee mod
2024-07-11 05:50:32 +00:00

130 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<audio id="audio" title="14丨数据可视化掌握数据领域的万金油技能" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/48/8c/484bbea09a7e82b9872cbcdb0a466e8c.mp3"></audio>
上一讲中,我给你讲了数据变换,今天讲一下数据可视化。如果你想做一名数据分析师,那么掌握可视化技能是必不可少的,因为在大部分情况下,老板更关心呈现的结果。
另外当这些可视化的结果呈现在你眼前时,你才能直观地体会到“数据之美”。图片在内容表达上,要远胜于文字,它不仅能体现数据真实性,还能给人很大的想象空间。
## 数据可视化的视图都有哪些?
在了解数据可视化的重要性之后,我们来看下,在数据可视化产品中,一般都包括哪些视图?
我们常用的可视化视图超过20种分别包括文本表、热力图、地图、符号地图、饼图、水平条、堆叠条、并排条、树状图、圆视图、并排圆、线、双线、面积图、双组合、散点图、直方图、盒须图、甘特图、靶心图、气泡图等。
你不用记住这些视图名称都是什么,因为在可视化工具中,操作面板上都会有这些图形可供选择。你看一眼就知道它是不是你想要的。
当然你不仅要掌握这些视图的使用更要了解使用它们背后的目的是什么这里我整理了下可以分为以下的9种情况
<img src="https://static001.geekbang.org/resource/image/5b/d3/5bb98485841aa86f1ca18762e9e04ed3.png" alt=""><br>
在上面的这几种情况里,你也许想要看某个数据的分布情况,或者它随着时间的趋势,或者是局部与整体之间的关系等等。所以在设计之前,你需要思考的是,你的用户是谁,想给他们呈现什么,需要突出数据怎样的特点,以及采用哪种视图来进行呈现。
比如说,你想呈现某个变量的分布情况,就可以通过直方图的形式来呈现。如果你想要看两个变量之间的相关性及分布情况,可以采用散点图的形式呈现。
一个视图可能会有多种表达的目的,比如散点图既可以表明两个变量之间的关系,也可以体现它们的分布情况。同样,如果我想看变量的分布情况,既可以采用散点图的形式,也可以采用直方图的形式。
所以说,具体要采用哪种视图,取决于你想要数据可视化呈现什么样的目的。
## 数据可视化工具都有哪些?
那么如何把数据弄成上面说的视图呢?我们需要借助数据可视化的工具。
这些工具有很多,我从几个维度来给你介绍下。这几个维度分别是商业智能分析软件、可视化大屏、前端可视化组件和编程语言类。
**商业智能分析**
首先在商业智能分析软件中最著名的当属Tableau和PowerBI了另外中国帆软出品的FineBI也受到国内很多企业的青睐。
Tableau是国外的商业软件收费不低。它适合BI工程师、数据分析分析师。如果可以熟练掌握Tableau那么找到一份数据分析的工作是不难的。
PowerBI是微软出品的可以和Excel搭配使用你可以通过PowerBI来呈现Excel的可视化内容。
在BI行业中Tableau和PowerBI远超其他BI产品处于行业的领导者的位置。
另外FineBI是中国的帆软出品针对国内使用更加友好同时也倾向于企业级应用的BI。
**可视化大屏类**
大屏作为一种视觉效果强、科技感强的技术被企业老板所青睐可以很好地展示公司的数据化能力。这里给你介绍两款可视化大屏的软件DataV和FineReport。
- **DataV**
DataV是一款可视化的工具天猫双十一大屏就是用它呈现的。你要做的就是选择相应的控件配置控件的样式、数据传输和交互效果等。当然DataV本身有一些免费的模板你可以直接通过模板来创建。不过一些特殊的控件和交互效果还是需要购买企业版才行。
- **FineReport**
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做的蜘蛛图。
<img src="https://static001.geekbang.org/resource/image/a0/4a/a0c012ecf3831d9657faf744c8cbf74a.jpg" alt=""><br>
Seaborn是一个基于Matplotlib的高级可视化效果库针对Matplotlib做了更高级的封装让作图变得更加容易。你可以用短小的代码绘制更多维度数据的可视化效果图比如下面这个例子
<img src="https://static001.geekbang.org/resource/image/8c/f3/8c9372266b616109fbe3847d9c6ef0f3.jpg" alt=""><br>
在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数据可视化有所掌握。
<img src="https://static001.geekbang.org/resource/image/bd/5b/bd49dbaffdc170ecc4d56d946afd5c5b.jpg" alt=""><br>
最后给你留两道思考题吧。你平时的工作是怎样的,是否需要用到数据可视化技术呢?在数据可视化技术中,你都用过哪些工具,你觉得哪个工具使用起来比较顺手?
欢迎和我在评论区进行讨论,也欢迎你把这篇文章分享给你的朋友或者同事。