大数据可视化系列一:可视化工具选择

时间:2023-02-12 03:48:20
  在这个全民创业的火热年代,枯燥乏味的数据统计居然也靠“大数据”概念咸鱼翻身,突然变得炙手可热起来。既然大数据这么洋气,当然要好好钻研。梦想还是要有的,万一靠这发财了呢!
一,数据可视化的魔力
  大数据里面,我觉得最洋气的领域就是数据可视化了(其实是其它的不会...),俗话说的好,可视化就是大数据产业“长征的最后一公里”,是面向用户的最终数据体现形式,男人(用户)的唯一标准就是脸(图)好不好看。 
书上说数据可视化有数据挖掘,数据清洗,数据表现等等一堆过程,这里就长话短说单刀直入聊聊数据表现的画图环节。数据表现的大白话就是把数据画成图形,比如用Excel整个柱状图啥的。但是Excel这么简单人人都会,咋个体现咱们的专业性!这行当混饭吃的诀窍就是得把简单的事情复杂化,复杂到同行和客户看不懂了,恭喜你,已经是专家了! 
二,为什么MATLAB还不够
  为了把画个统计图这件事情搞复杂,业内人士处心积虑搞出来MATLAB等等重量级数据分析软件,画个条形图都有牛顿高斯这样的大科学家理论加持。当然牛逼的是这些软件能处理海量数据,用统计学理论如聚类分析,因子分析等挖掘出数据之间的关系,此之谓“数据分析”。数据分析软件能把数据以各种形式精确的表现出来,而且能够以三维立体图形等形式来唬人,效果相当不错。 

  既然数据分析软件这么牛逼,那还有其他的工具软件什么事?但是别忘了,我们处在鸡血沸腾的移动互联网时代,一切不能在手机上搞的都要推倒重来!MATLAB数据分析软件做数据可视化的最大问题是成果的传播不便,一个精心制作具备交互功能的图形,如果别人没装MATLAB,那对不起,只能看静态图片了。

  其他还有很多牛逼的数据分析软件如Tableau等也是类似情况。

三,互联网开放标准的数据可视化工具
  因此,为了能够在网上迅速传播大数据可视化成果,一批基于互联网开放标准的数据可视化工具软件就应运而生了。这些工具是如此简单好用,导致大量学文科的新闻记者都学会了,出现了一个新产业叫"数据新闻",据说要革传统新闻产业的命,以后不会写代码的文科生不是好记者了...
  基于互联网开放标准的数据可视化工具软件大多数以javascript作为开发语言,辅于CSS作为美化手段,一般封装成图表框架,引入HTML页面后即可开箱使用。数据可以用json, csv的形式,通过javascript读取到程序中进行绘图。
此类工具从头到脚遵循HTML,CSS,JAVASCRIPT,CANVAS,SVG,JSON等互联网开放标准,从此不用担心数据和开发平台的兼容性。死在沙滩上的前浪Adobe Flash,以及加强版的Flex,因为走了封闭道路遭到苹果乔帮主为首的各路江湖大佬围剿,已是日薄西山。从已经被遗忘的Macromedia到今日的Adobe,Flash的没落告诉我们互联网时代不走开放标准路线才是最危险的。
四,互联网数据可视化工具的流派
  程序员是一个最痴迷于武侠(撕逼)的群体,当然最擅长用武功、兵器比喻开发工具。金庸老先生说,天下数据可视化工具,一寸长一寸强,一寸短一寸险。基于javascript的互联网数据可视化工具可大致以分两个流派:长枪和绣花针。长枪流派是封装好的图形库如ECharts,绣花针流派是从底层自行开发的工具库如d3.js。
  封装好的图形库犹如长枪,拿上手就可杀敌,功力强者威力无边,底子再差也能当烧火棍使着防身。以ECharts为例,添点数据就是一张具备交互功能的图表,还有各种贴心的图表另存为图片等小功能;至于图表类型,只有你想不到没有百度做不到,什么条型图散点图树状图都不说了,基于WebGL从太空望地球的图表都给你准备妥了。如果要开发大量重复性简单数据图表,ECharts这样的封装良好的图表库无疑是最好的选择。
  但是有些人就是喜欢折腾,放着方便的工具不用,非得用最原始麻烦的,比如那谁东方不败就爱用俩绣花针对敌,用d3.js做数据可视化感觉也差别多。所谓一寸短一寸险,说的就是d3.js这玩意没啥现成的组件可以开箱即用,但是一切可以自行配置无比灵活;只要你脑子里能想到的数据可视化表现形式,用d3.js基本都能做出来;但是如果功力不到家,那基本上是坑死自己。练d3.js这葵花宝典的第一步就是挥刀自宫,忘记所有现成的图表类型和组件,自己从头引入数据,绑定Dom,绘制坐标轴,设置颜色,折腾到吐血一张基本曲线图就画好了!
五,总结与选择
  罗罗嗦嗦了大半天,好像就提到了ECharts和d3.js两种解决方案,连我自己都觉得是百度的托了。其实是因为这两个方案已经是这个领域的佼佼者了,属于非常典型的数据可视化工具代表,掌握了这两种基本上就能应付绝大多数数据可视化的做图工作了。其他的互联网数据可视化工具也非常多,套路也大同小异,网上随便搜索下就能出来“数据可视化最佳XX个工具”,在此就不赘述了。
  ECharts采用canvas图形标准,得益于硬件加速数万个数据点带起来丝毫没压力,缺点是位图格式不能无损放大;ECharts上手非常容易,百度专门提供在线的网站调试ECharts图表,满意了把代码拷贝走就行。ECharts非常适合大规模常规性数据可视化开发,比如网站的后台数据显示,各类ERP系统的数据显示等。
  d3.js采用svg图形标准,和CSS水乳交融美化很方便,支持无损放大,缺点是绑定数据太多的时候浏览器渲染dom的效率就变地下。当然d3.js也能用canvas,不过这都是非主流的实现方式了。d3.js需要从头开始实现图表每个元素,麻烦的同时也提供了定制空间,是创作复杂的个性化数据可视作品的最佳选择。

  下面现丑一个d3.js擅长的、ECharts不容易实现的数据可视化案例,欢迎点击:http://guoweish.github.io/work-tree.html

大数据可视化系列一:可视化工具选择