如何实现数据可视化?

  • 回答 (6)
  • 关注 (0)
  • 查看 (319)

数据可视化, 特别是基于Web的数据可视化的时代已经到来了。类似JavaScript的可视化库如D3.js, Raphaël, 以及Paper.js, 以及最新浏览器所支持的如Canvas和SVG, 以及使得那些过去只能由计算机专家和专业设计人员开发的复杂的可视化变得越来越简单了。

无聊至极无聊至极提问于
DEA林晨曦老司机回答于

以下示例是做一份数据的可视化图表,一步步的来看下我们如何获取数据,以及如何进行可视化的展示。

在上章内容中,提到了关于【数据可视化迭代过程】的步骤,这也能看出整个过程包含的步骤,大致有:1. 确定主题 - 2.数据获得 - 3.图表选择(表达)- 4图表绘制。

当然了我们也可以看到可视化是要一个不断迭代的过程,步骤之间都需要多次的迭代修改的。

确定主题

这肯定是第一步了,在做数据可视化的时候,首先你要明了你要做什么,想要从数据获中取什么信息,有了目标才能明确的往下做。

那我们这次还是来做关于空气质量PM2.5的数据展示,了解历年来PM2.5的实际情况和发展趋势。

数据获得

对于全国空气质量的数据,最权威的来源肯定是来自于中国环境监测总站(http://www.cnemc.cn/) 的数据提供。但是监测总站的API提供的并不是很详细,还有很多第三方也提供类似的API接口,比如PM25.in(http://pm25.in/) ,在API说明上做的很详细,他们的数据每日更新。所以这次我们选择PM25这个网站来获取数据源。

我们可以看到PM25提供的内容是相当多,包括PM2.5、AQI、PM10、CO、NO2、O3等等。我们只需要PM2.5的数据,所以我们把其他不需要的数据都可以去除掉,同时把Json的数据转换为CSV的数据格式,这里转换数据只是为了下一步处理方便,我这边是选用Processing来做数据可视化处理的。如果你用D3.js,Echart来做的话,Json可能会更方便点。

图表选择(表达)

对于很多人(非设计师)来说数据可能容易获取,但是像要把数据转换成合适的图表进行表达反而非常困难的。因为同样的数据,用不同的图表进行展示出来,得到的效果是完全不一样的。在平时我们可能用到最多的就是通过Excel来做的图表,在Excel2010的版本里面,提供了10类共53个图表,还提供了什么数据透视图,自定义图表等等,总之种类非常多。不过尽管图表种类繁多,但其基本类型只有以下几种:

  • 曲线图:用来反映随时间变化的趋势;
  • 柱形图:用来反映分类项目之间的比较,也可以用来反映时间趋势;
  • 条形图:用来反映分类项目之间的比较;
  • 散点图:用来反映相关性或分布关系;
  • 饼图:用来反映构成,即部分占总体的比例;
  • 地图:用来反映区域之间的分类比较;

那知道了基础图表的类型,如何去做图表的选择呢?国外专家Andrew Abela他将图表展示的关系分为4 类:比较、分布、构成、联系。然后根据这个分类和数据的状况给出了对应的图表类型建议。当我们不确定使用什么类型的图表的时候,可以参考下这个图。

图表绘制

俗话说【不会撸码的交互不是好的数据可视化设计师】,虽然现在市面上有各式各样的可视化的方法和工具,但坦白来说【这些可视化工具都是大坑!!!】,要想做好可视化的表现,最好的方式还是需要掌握一门编程语言,只有这样你才能最合适的表达清楚出你想传达出来的数据信息。

这里给各位想跳入数据可视化这个大坑的设计师们(编程大佬请无视),推荐一下Processing这个创意编程语言。

Processing是美国麻省理工学院媒体实验室旗下美学与运算小组创造出来的(就是搞设计的人做出来的编程语言),非常容易上手,代码逻辑也很简单,几段代码就能做出十分出现效果的展示,下图就是Processing的界面。

不过Processing没有代码提示的功能的,用起来还是十分痛苦的,经常是因为一个单词写错了,而造成程序报错。不过后来我发现到Subilme Text能支持Processing的编译环境,而且能提供代码提示功能,简直是发现新大陆一样,从此Processing用起来再也不费劲了。欢迎大家一起入坑Processing一起学习。

确定用Processing来实现后,我们继续来做PM2.5的可视化展示。国家环保部将空气质量分为六个等级,分别用绿、黄、橙、红、紫、褐六个颜色来标注,对于着优、良、轻度污染、中度污染、重度污染和严重污染六个空气质量。我们要展示历年来PM2.5的实际情况和发展趋势,就可以把每天的空气质量转换一个个不同颜色的小方格,通过颜色的区别来展示当天的PM2.5情况。

先在纸上画一个简单的草图。已年为划分,下面用小方格展示该年内每天的空气质量是什么等级,把当天的PM2.5数值转换对应的颜色值。

确定方式后,开始撸代码,代码很简单的,我大概编写了40来行就完成了,代码逻辑很简单就是先导入数据,然后判断当前数据的值是多少,根据不同的值赋予小方块不同的颜色。

实现之后,看起来就是这样子的。日期时间轴是按照1月到12月排列的,通过上面的图示我们可以比较清楚的看到污染程度比较高的时间是集中在开头和结尾,就是1-2月,11-12月之间,也就是每年冬天就是PM2.5污染程度高的时间。

我们继续把成都历史的数据可视化后来看下。我们发现12年之前成都空气质量都还不错的,在14年的时候,就没有小绿格了,可见14年成都空气质量有多差劲,15年、16年后慢慢的开始有点好转。我们在把北京,上海和深圳的天气拔来看看。

第一列是成都08-16年的空气质量,第二列是北京的,第三列是上海的,第四列是深圳的。可见深圳的空气质量完爆成都、北京和上海。几乎全是小绿格,真是宜居好地方。而帝都北京空气质量是这四个城市中最差的。其中14年都是上述几个城市空气质量最差的一年,而也是这一年央视记者柴静从央视辞职出去开始拍摄雾霾的深度调查,在第二年2015年2月28号推出纪录片《穹顶之下》,引发了公众的一片哗然,全民开始关注雾霾,政府部门也开始着手治理雾霾,15年、16年开始有所好转。

回答过的其他问题

微信小程序云开发的服务器搭建流程是什么?

DEA林晨曦老司机
流程如下: 购买腾讯云 到腾讯云官网上购买【云服务器CVM】,购买后分派两个ip地址,公网和内网的。我们做一些配置基本都是基于外网ip。Lefe 购买的是 Ubuntu 外网IP,就是公网IP,可以给外面人用的,例如做网站,或给其它人下载等。 肉网IP,就是局网IP,如果你有几台...... 展开详请

Android平台内有哪些生活中的云计算应用实例?

DEA林晨曦老司机
社交媒体是云计算中最受欢迎且经常被忽视的应用程序。微信,微博和许多其他社交网站都使用云计算。社交网站旨在找到您已经知道或想要了解的人。在寻找人的过程中,我们最终分享了大量的个人信息。当然,如果您在社交媒体上分享信息,那么您不仅要与朋友分享,还要与平台的制作者分享。这意味着该平台将...... 展开详请

PHP会话默认超时

DEA林晨曦老司机

你可以在你的web服务器上的php-配置中更改它。搜索php.ini

session.gc_maxlifetime()该值以秒为单位设置。

nginx无法解析js和css?

DEA林晨曦老司机

js和css返回错误不是404

应该是能找到文件而不能正常解析有可能是mime类型异常

可以尝试搜索一下nginx 设置css mime type

点播控制台中的全局设置都包含哪些设置?

DEA林晨曦老司机
全局设置中包含有: 转码设置、防盗链功能、分类管理。详细的功能介绍及设置教程可查阅腾讯云官网的产品文档(官网首页》社区与文档》产品文档》点播》用户指南》使用指南中的“12.全局设置“),请先看看是否能帮助解决问题。链接:https://www.qcloud.com/documen...... 展开详请

如何在Spring Boot中禁用GridFS MD5计算?

DEA林晨曦老司机
已采纳

扫码关注云+社区