最近很多朋友跟我抱怨:为了公司数据好看,老板一个劲地想要数据可视化,以为可视化就是画画图表这么简单,可苦了自己天天加班做数据,但其实老板根本不懂可视化!确实,数据可视化无疑是当今最火热的词,不管是做什么数据,似乎都要拿来做一下可视化才行,但很多人都对数据可视化没有一个具体的概念,也不知道该如何实现可视化。所以,话不多说,下面就带大家由浅入深地学习数据可视化的定义、概念、实现过程和方法。一、什么是数据可视化科学可视化、 信息可视化和可视分析学三个学科方向通常被看成可视化的三个主要分支。而将这三个分支整合在一起形成的新学科 “数据可视化”,这是可视化研究领域的新起点。广义的数据可视化涉及信息技术、自然科学、统计分析、图形学、交互、地理信息等多种学科。
1、科学可视化科学可视化是科学之中的一个跨学科研究与应用领域,主要关注三维现象的可视化,如建筑学、气象学、医学或生物学方面的各种系统,重点在于对体、面以及光源等等的逼真渲染,目的是以图形方式说明科学数据,使科学家能够从数据中了解、说明和收集规律。
2、信息可视化信息可视化是研究抽象数据的交互式视觉表示以加强人类认知。 抽象数据包括数字和非数字数据,如地理信息与文本。柱状图、趋势图、流程图、树状图等,都属于信息可视化,这些图形的设计都将抽象的概念转化成为可视化信息。
3、可视分析学可视分析学是随着科学可视化和信息可视化发展而形成的新领域,重点是通过交互式视觉界面进行分析推理。
二、为什么需要数据可视化人类利用视觉获取的信息量,远远超出其他器官,而数据可视化正是利用人类天生技能来增强数据处理和组织效率。
可视化可以帮助我们处理更加复杂的信息并增强记忆。大多数人对统计数据了解甚少,基本统计方法(平均值、中位数、范围等)并不符合人类的认知天性。 最著名的一个例子是 Anscombe 的四重奏,根据统计方法看数据很难看出规律,但一可视化出来,规律就非常清楚。
三、如何实现数据可视化在技术上,数据可视化最简单的理解,就是数据空间到图形空间的映射。
一个经典的可视化实现流程,是先对数据进行加工过滤,转变成视觉可表达的形式(Visual Form),然后再渲染成用户可见的视图(View)。
可视化技术栈具备专业素养的数据可视化工程师一般来说需要掌握以下技术栈:基础数学:三角函数、线性代数、几何算法图形相关:canvas、svg、webgl、计算图形学、图论工程算法:基础算法、统计算法、常用的布局算法数据分析:数据清洗、统计学、数据建模设计美学:设计原则、美学评判、颜色、交互、认知可视化基础:可视化编码、可视分析、图形交互可视化解决方案:图表的正确使用、常见的业务的可视化场景四、常用的数据可视化工具学术界用得比较多的是R语言、ggplot2、Python可视化库等,普通用户喜闻乐见的是 Excel,商业上的产品是Tableau、DOMO、 FineBI等等,是个精彩纷呈的世界。1、D3D3.js 是一个基于数据操作文档的 JavaScript 库。 D3 可以将强大的可视化组件和数据驱动的 DOM 操作方法完美结合。
评价:强大的 SVG 操作能力,可以非常容易的将数据映射为 SVG 属性,还集成了大量数据处理、布局算法和计算图形的工具方法,有着强大的社区和丰富的 demo,但是API 太底层,复用性低,学习与使用成本高。2、HighChartsHighCharts 是一个用纯 JavaScript 编写的图表库, 能够简单便捷的在 Web 应用上添加交互性图表。这是在 Web 上使用最广泛的图表,企业使用需要购买商业授权。
评价:使用门槛极低,兼容性好,且使用广泛,非常成熟,但是样式比较陈旧、图表难以扩展,商业上使用需要购买版权3、ECharts企业级图表,开源来自百度数据可视化团队,是一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器。
评价:丰富的图表类型,覆盖主流常规的统计图表,而且配置项驱动,三级个性化图表样式管理,但是灵活性上不如 Vega 等基于图形语法的类库,一些复杂关系型图表比较难定制4、LeafletLeaflet 是面向移动设备的交互式地图的 JavaScript 库。 测量的 JS 只有大约 38 KB,它具有大多数开发人员需要的所有映射功能。
评价:专门针对地图应用,mobile 兼容性良好,API 简洁、支持插件机制,但是功能比较简单,需要具备二次开发能力5、VegaVega 是一套交互图形语法,定义了数据到图形的映射规则、常见的交互语法和常见的图形元素,用户可以自由使用 Vega 语法进行组合构建出各种各样的图表。
评价:完全基于 JSON 语法,提供从数据到图形的映射规则,支持常见的交互语法,但是其本身有着复杂的语法设计,使用和学习成本很高6、deck.gldeck.gl 是 Uber 可视化团队基于 WebGL 开发的面向大数据分析的可视化类库。
评价:主要以 3D 地图可视化为主,内置了地理信息可视化常见的场景,支持大规模数据的可视化,但是需要具备 WebGL 的知识,层的扩展比较复杂7、FineReportFineReport报表软件是一款纯Java编写的、集数据展示(报表)和数据录入(表单)功能于一身的企业级web报表工具,仅需简单的拖拽操作便可以设计复杂的中国式报表,搭建数据决策分析系统。
评价:可以直连数据库,方便快捷的定制各种复杂表样,用来做出固定格式的周报、月报等。它的格式类似于excel界面,特色功能报表制作,报表权限分配,报表管理还有填报,支持多种数据库。8、TableauTableau是桌面系统中最简单的商业智能工具软件,没有强迫用户编写自定义代码,新的控制台也可完全自定义配置。在控制台上,不仅能够监测信息,而且还提供完整的分析能力。
评价:全球知名的BI工具,价格6000元/年/人左右,但是国外产品不花钱不会为你做任何定制化改动,售后很有问题。9、FineBIFineBI是商业智能BI工具,与Tableau类似,都主张可视化的探索性分析,有点像加强版的数据透视表。上手简单,可视化库丰富。可以充当数据报表的门户,也可以充当各业务分析的平台。
评价:FineBI做到了自助式分析,图表类型丰富,数据分析功能较强大,钻取,筛选,分组等功能都有。10、Power BIPower BI 是一套商业分析工具,用于在组织中提供见解。可连接数百个数据源、简化数据准备并提供即席分析。生成美观的报表并进行发布,供组织在 Web 和移动设备上使用。
评价:类似于excel的桌面bi工具,功能比excel更加强大。支持多种数据源。价格便宜。但是只能作为单独的bi工具使用,没办法和现有的系统结合到一起。
总结
数据可视化是个庞大的领域,涉及的学科非常多,但正是因为这种跨学科性,让可视化领域充满活力与机遇。