上节课我们从产品思维出发,借助各种数据指标分析产品需求,可以知道数据指标非常多。其实在大数据体系的每一个环节,都有着非常多的数据。这些数据呢,我们写代码去处理没有什么问题,用大数据工具进行运算也没什么问题,但是如果想把数据中的信息表达出来,让人看完能够记住,并且能够记得清楚,明白其中的重点,只靠着一条条的数据恐怕是难以做到。如果我们单纯地把数据列出来,就像下图的表格一样,用在你的展示汇报中,估计没有人能看得下去。
数据本身往往是十分枯燥的,而且十分分散,想要简化数据中的信息,给大家留下深刻的印象,选择使用图表来表达数据情况是一个非常不错的选择。我想在你的工作和生活中,也一定见过各种各样的图表,对比明显的、优雅的,甚至是炫酷的,让你记忆犹新。我们看下面这张数据大屏的截图:
图片来自腾讯云图页面展示
这里使用柱状图进行数据排行的展示,折线图展示客流量变化,环形图展示数据的分布,中间最大的是一张热力地图。这样的图表展示让人能够清楚地了解某超市门店的主要指标,对门店的经营状况一目了然,而其背后的数据实际上与我们日常处理的数据并没有什么区别,那么在这里,发挥作用的就是数据可视化。
图表的优点
数据以图表的形式展示出来,比起干巴巴的数据有很多优点。
1.简化数据
第一个是简化数据。在我们的大数据架构中,每天流转的数据动辄上亿条,其中的关联也是纷繁复杂,单纯观察数据恐怕是毫无头绪,使用图表的形式可以帮助我们厘清关系,以简洁的形式展现那些最重要的数据。
2.加强记忆
正如我上面所贴的表格和数据大屏的区别,表格的内容你很难记下来,但是转换成图表则会获得非常好的记忆效果。视觉信号的持久性更长,如果说我们还能把数据转换成合适的图表,并能够用色彩变化来展现,则可以进一步强化记忆。
3.易于理解
使用图表还可以加快人们对数据信息的理解,“一图胜千言”说的就是这个道理。很多时候需要用语言描述半天的东西,如果画一张图可能你一下子就明白了。
4.突出重点
使用图表来展示我们的观点,并通过图表的形式、颜色等信息加强我们所要表达的重点,能够更好地说服其他人。
假设在我们电商网站的某个页面,我说我们每天有 5000 个商品信息被加载出来,有 4000 个被用户看到,有 3000 个被点击,有 1000 个订单,但是最后只有 250 个成交,这样的信息你可能很难一下反应过来,但是我们把它画成一个漏斗图,如下图所示:
你可以很明显地看到每一步流失掉多少用户,差距最大的在下单到支付的环节,所以我们可以针对这个环节再去分析是什么因素导致用户下单之后没有付款,从而优化我们的产品。
不同场景下的可视化工具
既然数据可视化有这么多的好处,那么我们该怎么开展数据可视化呢?让我们自己去画图显然是不可能的,也没有那美术功底,当然,现在有很多数据可视化的工具可以使用,我想大家应该都有所了解,比如说使用 Excel 或者 PPT,那么在大数据场景下,我们该如何去选择合适的可视化工具呢。
1.开发者个人数据可视化
大数据体系下的开发人员,比如说算法工程师要对算法模型的效果进行对比展示,可以使用 Python 的可视化工具库来进行数据可视化,这类的可视化需求通常是一次性的,Python 中常用的可视化库有Matplotlib 和 Seaborn,其中包含了常见的静态图表展现形式,像直方图、散点图、箱体图等等,使用这些可视化库基本上可以满足开发者日常的需求。借助 Jupyter 这种开发工具,可以在日常的开发或者算法工作中快速展现数据表现。
当然,使用 Python 开发图表的困难也显而易见,首先是对于不懂 Python 编程语言的同学学习成本比较高,其次是想要做出比较复杂的图需要非常复杂的配置项。
2.业务分析型数据可视化
这类可视化需求主要是针对公司的非开发人员。在公司中要借助大数据力量的可不止开发人员,事实上,几乎公司的每一个环节都会见到大数据的身影,每一个决策似乎都与大数据有着千丝万缕的关系。比如说数据分析师、产品、运营等人员,期望借助一些现有的可视化工具来增强对数据的分析过程,通过这种更加显眼的方式辅助分析,并得到分析结果。
Tableau 就是一款有着这样定位的数据可视化工具,它提供了一款桌面软件,如下图所示:
其中封装了非常多的图表样式,并且提供简单易用的操作方式,不仅能够监测数据,进行图形化展示,还提供了完整的分析能力。Tableau 的学习成本非常低,只需要拖拽一下就可以完成数据可视化,其中提供的功能基本上可以满足公司大部分数据可视化的需求。除了桌面版本, Tableau 还提供 CRM 版、Online 版等等,对于不会写代码的分析人员非常友好。当然 Tableau 是一款收费的商用软件,在公司使用的话需要注意这一点。
3.动态数据展示可视化
如果说你们的可视化需求已经不是出于个人的需要,也不是要做一些汇报和分析,而是要完全构建起一套属于自己业务的数据可视化平台,能够自由地掌控其中的每一个元素,并能够实时进行数据展示甚至是互动,就像时下流行的炫酷数据大屏一样,那么你可能就需要用到 Echarts 了。
它是由百度开源的一个非常专业的数据图表,使用 JavaScript 实现,底层依赖矢量图形库 ZRender,支持几乎所有的浏览器展示。在 Echarts 的示例页面对 Echarts 中的基本可视化图形进行了展示,如下图所示:
可以看到很多我们想到或者想不到的图表类型都已经位列其中,再加上开发者自己的调整可以变换出各种各样的报表形式,由于 Echarts 功能强大,而且免费开放,很多公司在开发自己的可视化平台时也都是使用 Echarts 作为其可视化组件。
在这里呢,我介绍了三种可视化方案,它们分别适用于三种不同的场景。当然,市面上的可视化方案非常多,远不止这里所列举的这几种,但是功能方面大同小异,我这里所写的是最常用的几种情况。如果你有时间,可以再对这部分深入了解一下,看看具体到自己的业务上,使用哪种工具更加顺手。
当然,数据可视化是一种技术与艺术的结合,虽然技术方面我有一点认知,但是艺术方面实在是不得要领,因此在做数据可视化的时候该如何去选择合适的图表形式,该如何搭配色彩等等。经过学习和总结,我这里给出一些小的建议,希望在你刚开始做这方面事情的时候也可以用得上。
可视化的建议
1.关于可视化图表的选型
每种可视化图形都有其适合的场景,或者说适合展示的数据,在这里我大概做了一些总结。
(1)类别比较
类别比较即是对不同类别的数据放在一起进行对比,突出的是不同数据的规模差异情况,这种可视化一般会用到柱形图、条形图、雷达图、词云图等等。
(2)数据关系
数据关系型图表主要是为了展示数据的不同变量之间的联系,比如说层次关系、网络关系、数值关联等等情况:
-
像数值关联分析需求,可以使用散点图、气泡图、曲面图等等;
-
当要对比的变量超过三个,可以考虑星形图、平行坐标系、矩阵散点图等等;
-
而层次关系可以考虑节点链接图、树形图、冰柱图、旭日图等等;
-
网络关系可以考虑桑基图、蜂箱图之类的图表形式。
(3)数据分布
数据分布类主要为了展示例如我们的产品在某些维度上出现的规律情况,这类建议使用直方图、密度曲线图、箱型图等等。
(4)时间序列
时间序列的数据通常是为了表现随着时间的变化,所展现出来的数据趋势,这类可选择的图形有折线图、面积图、雷达图、日历图、柱形图等等形式。
(5)局部整体
局部整体的数据展示通常是为了说明整体下的组成部分所占的比重情况,这种可以采用饼图、环形图、旭日图、矩形树状图等等。
(6)地理空间
最后一种说的是期望展示数据在地理空间方面的分布情况,通常使用地图作为底图,然后辅助以热力图或者散点图进行对比。
除了这里列出的这些,还有很多图表类型我并没有提到,你还需要在实际的应用中去摸索。
2.关于颜色的搭配
对于我这样对色彩敏感度较低,自己只能搞出一些奇奇怪怪配色的人来说,最好使用既定的色彩主题。好在我上面提到的几种可视化工具中也都提供了若干的色彩主题供大家使用,这些色彩主题都是由专业设计人员精心设计的,本身是有比较好的美观度,同时也省去了自己搭配色彩的苦恼。
其次,如果你觉得工具提供的配色不能满足你的需求,那么可以去一些配色网站上寻找你想要的配色方案,并应用到自己的可视化中。
最后一个方案,是使用公司提供的配色方案,一般公司的设计部门会有一套常用的公司配色方案。如果没有,你也可以从公司的网站、App 中寻找配色方案,并应用在你的汇报中。关于配色方面,总的原则就是一定要简洁明了,色彩种类不宜太多。当然,如果你非常精通配色可以忽略我说的这部分内容。
总结
这节课我介绍了数据可视化的相关知识。数据可视化是技术和艺术的结合产物,通过把原本冷冰冰的数据通过图形化的手段展示出来,可视化增加了信息的传递和沟通效率,而数据则赋予了图形意义。
数据可视化看似与我们开发人员离得比较遥远,但实际上,开发人员也要学会使用这些图形来加快自己的开发进度,或者借助可视化的优势汇报工作、展示能力。总的来说,要做数据可视化并不是一个很困难的事情,这里面有诸多成熟的工具供我们使用,但是想要把数据可视化这件事情做好,却不是那么容易的,像选型、配色、心理把握都有着很多的讲究。只有在工作中不断摸索、不断尝试,才能越做越好,逐渐形成一套适合自己的可视化方案。
那我提到的这些可视化工具,你在工作中有用到过吗?在使用过程中,你有什么心得或者遇到什么问题吗?欢迎在评论区与我分享。
那下一模块呢,我们开始大数据的应用和安全部分的讲解,下一讲我们一起来聊聊如何快速搭建一个推荐系统。