大比拼:用24种可视化工具完成同一项任务的心得体会

简介:


回顾今年5月,我为自己制定了一项挑战——我想要在数据可视化领域尝试使用尽可能多的应用程序、库和编程语言。为了在一个公平的竞争环境中比较这些工具,我运用这些工具分别创建了相同的散点图(也称为气泡图)。

基于结果,我发布了两篇文章:

1.数据可视化应用程序(http://lisacharlotterost.github.io/2016/05/17/one-chart-tools/)

2.数据可视化库和编程语言(http://lisacharlotterost.github.io/2016/05/17/one-chart-code/)

所有工具的使用情况概述可以在这个Google电子表(https://docs.google.com/spreadsheets/d/1Ac4ZOBJRNOipVOnF0vW6H3mXSf8H3XM7z9zMh3OxP7I/edit#gid=0 )中找到。现在我将从更高级的视角来比较这些工具罗列我的经验所得。

充分说明:尝试使用新工具之前,本实验深受已掌握工具的影响。按照工具使用时长排序,它们是:Adobe Illustrator, Google Sheets, Tableau, R & ggplot2, d3.js, Processing, Raw, Lyra.

以下GIF图是我创建相同图表所用到的12种不同应用程序:

下图是所有图表库的不同输出结果:

让我们开始吧!以下是我的心得体会:

世上没有完美的工具,只有针对特定目标的优质工具!

数据可视化是一种广泛运用于不同子领域(例如科学、商业和新闻业)的沟通工具。不同领域有不同的需求 —— 但即使在数据新闻领域,数据可视化也有不同的方法和不同的目标与之相对应。不存在任何一个工具可以满足所有的需求。

下面是我在实验中遇到的一些相互矛盾的目标:

分析vs演示:你想使用工具来挖掘数据(R,Python)还是构建面向公众的可视化(D3.js, Illustrator)?Tableau,Ggvis,Plotly试图建立两者之间的桥梁,但我很乐意看到更多优化的解决方案。

针对这个矛盾点,以下是我对所有工具的划分:

数据管理:在创建数据可视化时,您是否会更改原始数据(例如更改某值或所有数值,添加行或列)?

在一些应用程序(如Illustrator)中,当你对数据做了轻微的改动时,你便需要重新构建图形。这是最不方便的数据管理,而且阻碍实验的进程。较为方便的办法是更改工具外部的数据,然后(再次)导入新数据更新可视化。 D3.js就是这种方式的一个例子。但是存在其他应用程序比运用代码处理数据更加方便:导入数据之后,您可以直接更改或添加新的转换列(列如:Plotly和Lyra)。  

图表类型vs创新型图表:你只需要基本的图表类型,如条形图或折线图(Highcharts,Excel)或者你想要创建不可思议的图表魔法(D3.js)? 基于对D3.js的理解,我认为创新型图表库必然伴随着冗长的代码和陡峭的学习曲线。我在代码处理中用一半的代码重新创建了相同的图表(Processing太糟糕了,不适合数据可视化)。然后运用Lyra,这是一个在不变更代码的前提下允许使用数据操纵视觉元素的所有属性的应用程序。

动态 vs 静态:你想要为网络创建交互性的图表(D3.js,Highcharts)吗? 或者你不介意最终创建一个PDF / SVG / PNG(R,Illustrator)? 几年前,交互性图表被视为圣杯 - 但是近来人们似乎已经从“看起来”转向了开始思考它的意义。(https://github.com/archietse/malofiej-2016/blob/master/tse-malofiej-2016-slides.pdf)

而且,交互性图表对于分析的部分也是很有意义的。 R语言中(如Ggvis和Plotly库)使您可以轻松地将鼠标悬停在可视元素上并查看原始数据。


世上没有完美的工具,只有针对特定思维方式的好工具。

在我发表文章之后,Alberto Cairo建议我尝试了两个使用起来令我很困惑的工具Yeeron和InZight(https://twitter.com/albertocairo/status/732676760840605697)。 另一方面,他指出Lyra(给了我很多启示的工具)是很难使用的。Cairo和我有着不同的背景:他是一位记者兼顾设计师,但是他更倾向于认为自己是一名记者,而我更倾向于认为自己是一名设计师。他喜欢Quadrigram这种将图形看作故事的一部分的工具,并且因其具有精选的设计默认值。而我喜欢那种在绘图的过程中给我完全自由的工具。

人类有不同的观点和偏好,工具开发者也是如此。他们带着特定的信念设计工具,思考工具当前的用法以及以后应该如何运作。但这些信念不一定与你的信念相符。工具开发者深受现有工具、同行同仁以及用户反馈的影响。因此,工具不可能适用于每个人,特别是在数据可视化和数据新闻领域,工具开发者和使用者有着非常不同的背景:新闻媒体人,统计,计算机科学,设计等等。如果一个工具适合为我工作,我不能认为它会让所有人满意。


我们仍然处于一个“应用程序服务简易生活,代码引致精彩人生”的世界。

大多数应用程序都是很容易学习的,但是功能有限。大多数编程语言/图表库较难掌握,但可以提供更多的灵活性和选择性。下面的图表是我对灵活性和学习困难程度之间关系的一些主观想法。

令人失望的是情况依然如此。编程不应该作为让数据新闻领域家喻户晓的先决条件。而且实际上代码对于很多人来说仍然是可望而不可即的。我们需要从问题的两端同时开展工作。帮助人们进入代码的世界可以使他们在短期中感到归属感。但我们仍应该继续从事开发高度灵活、用户友好型的应用程序给更多的人带来长远的影响,这可以使他们在百忙之中接受最好的数据可视化规则教学。

我们欢迎像Plotly,Tableau,Lyra和NodeBox这样通过点击和拖动界面提供高度灵活性的应用程序。我很想看到更多这样的程序。创建与代码一样强大的用户界面“只是”一项设计上的挑战。


每一种工具都为你指引了一条路径。

我的前NPR视觉队友布莱恩·博耶在他的一篇文章(https://medium.com/npr-design/that-one-free-tool-ab585438696d#.xva3leef1)中提到。那么什么是可用的路径,你会去选择沿着哪一条路径呢?

我的路径心象图如下图所示:

就个人而言,我认为自己只可以熟练地掌握“简易方便图表”和“分析图表(你应该发表)”的一小部分。通过这个实验,我很明确地想要更深入地了解“图表分析”。而且我想更多地研究“创新型的外部图表”。同时也想通过Lyra来处理更多的原型。

原文发布时间为:2017-02-15

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
JSON 网络安全 数据安全/隐私保护
gitlab--安装和配置
gitlab--安装和配置
|
小程序
开发平台改版上线,我那么大个“能力管理”去哪儿了?【开发面对面第一期】
开发平台改版上线,我那么大个“能力管理”去哪儿了?【开发面对面第一期】
142 0
|
前端开发 关系型数据库 容器
利用Canvas进行绘制XY坐标系
原文:利用Canvas进行绘制XY坐标系 首先来一发图 绘制XY的坐标主要是利用Canvas setLeft和setBottom功能(Canvas内置坐标的功能) 1.首先WPF中的坐标系都是从左到右,从上到下的 即左上角位置(0,0)点,所以XY的Canvas要以(RenderTransf...
1969 0
|
传感器 存储 物联网
物联网的定义和原理
物联网 (IoT) 是指由嵌入传感器、软件和网络连接的物理设备、车辆、电器和其他物理对象组成的网络,允许它们收集和共享数据。这些设备(也称为“智能对象”)的范围可以从简单的“智能家居”设备(如智能恒温器)到可穿戴设备(如智能手表和支持RFID的服装),再到复杂的工业机械和运输系统。技术人员甚至设想了基于物联网技术的整个“智慧城市”。
2168 1
|
算法 数据可视化 调度
基于PSO粒子群优化的车间调度问题求解matlab仿真,输出甘特图
基于PSO粒子群优化的MATLAB仿真解决车间调度问题,输入机器与工作完成时间,输出甘特图与收敛图,实现多机器多任务最优并行调度。使用MATLAB 2022a版本运行,通过模拟鸟群觅食行为,不断更新粒子速度与位置寻找最优解,采用工序编码,总加工时间为适应度函数,实现快速收敛并可视化调度结果。
498 16
|
小程序 Java
Java程序利用main函数中args参数实现参数的传递
Java程序利用main函数中args参数实现参数的传递
716 0
|
存储 固态存储 安全
阿里云服务器租用价格参考,最新收费标准与活动价格表整理
租用阿里云服务器一年多少钱?不同时期阿里云服务器的租用价格不同,现在购买阿里云轻量应用服务器2核2G3M带宽82元1年,经济型e实例ECS云服务器2核2G3M带宽新购和续费优惠价99元1年,通用算力型u1实例2核4G5M带宽新购和续费优惠价199元1年,4核8G云服务器955元1年,4核16G10M带宽云服务器70元1个月、210元3个月,8核32G10M带宽云服务器160元1个月、480元3个月。本文为大家整理汇总了截至目前阿里云服务器的最新收费标准与活动价格,以供参考。
阿里云服务器租用价格参考,最新收费标准与活动价格表整理
|
iOS开发
iOS多线程之NSOperationQueue-依赖、并发数、优先级、自定义Operation等最全的使用总结
iOS多线程之NSOperationQueue-依赖、并发数、优先级、自定义Operation等最全的使用总结
805 0
如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)
该文介绍了一个工具的使用方法,用于忽略文件夹结构并合并所有图片。首先,提供了两个下载链接:百度网盘(提取码:qwu2)和蓝奏云(提取码:2r1z)。接着,展示了文件夹内的嵌套结构,包含多层文件夹和兔兔图片。通过打开工具,选择文件批量复制功能,勾选“忽略文件夹结构”和“不存在自动创建”,然后将目标文件夹“1”添加到来源路径。点击开始复制,并在需要时选择打包和删除原文件,最终会得到一个包含所有图片的压缩包。
|
XML 搜索推荐 JavaScript
摸鱼神器IntelliJ IDEA插件EasyCode的使用
摸鱼神器IntelliJ IDEA插件EasyCode的使用
1392 1