之前看到一个国外妹子用了24种工具制作一个相同的图表,比较了12款可视化软件和12个编程/图表库,并针对工具/图表库的侧重度,灵活程度,图表创新性,交互效果四大方面,写了一篇一级棒的文章。
本课代表编译了这篇文章和大家分享,便于大家更加了解这些可视化工具与编程的优缺点。(ps:原文基于CC Attribution 3.0版权协议,编译文在原文基础上有删改)
———————————————
今年5月,这个妹子给自己设置了一个挑战:尽可能尝试使用多种多样的编程语言或者软件来进行数据可视化。为了比较这些工具,她利用这些工具重复制作了同样的一张散点图。基于结果,她还发布了两篇文章:一篇是用12种软件做一个相同的图表,另一篇是用12种编程/图表库做一个相同的图表。
下图展示了她使用12个不同的软件制作同一张散点图的过程:
(想看动图的可以戳这里)
这是12种编程/图表库制作出来的效果:
她从这些可视化软件/图表库中认识到:
There Are No Perfect Tools, Just Good Tools for People with Certain Goals.
没有十全十美的工具,但是如果确立(可视化)目标,就能找到合适的工具去实现。
数据可视化在很多领域都有应用,比如自然科学,商业当然还有新闻业。(插播:本美数课课代表从事的数据新闻~)所有这些领域都有不同的需求——但即使在数据新闻领域,不同的场景下呈现的方式和效果也不同,因此不存在一个完美的工具可以满足所有的需求。
下面是她在制作中曾遇到过的一些矛盾,也是数据可视化工作者常常遇到的情况。
1)分析 VS 展示:
是想使用工具(R, Python)来分析数据,还是更注重于构建可视化效果(D3.js, Illustrator)?有些工具(比如说 Tableau, Ggvis, Plotly)试图在这其中谋求平衡,既可分析又可展示。
她根据分析和展示上的侧重性对可视化工具和编程语言们进行了排列:可以看到工具类的往往更注重展示,而编程类的比较平均,各有侧重点。
2)数据管理
如果制作可视化的时候需要更改源数据怎么办?在这方面,这些工具或编程语言的灵活性如何?
低灵活性:比如在Illustrator中,即使你只是轻微修改了数据,也需要重头开始制作图表,这种工具还不方便进行数据管理。
中灵活性:比如在D3.js中,可以单独处理或修改数据,然后再重新导入数据文件来更新可视化结果。
高灵活性:比如在Plotly和Lyra中,导入数据后,可以直接在该工具中修改或是增减新数据。
3)传统图表 VS 创新图表:
如果你只需要基本的图表类型,如柱状图或折线图,Excel完全可以满足啦~
但你如果想创建表现形式更为丰富的互动图表,比如点击可以出现酷炫的交互效果,像D3.js之类的编程语言就更适合啦,但是学习此类工具的门槛也往往更高,有着陡峭的学习曲线和冗长的代码。或者也可以使用Processing,用它制作这张散点图的代码长度只有D3.js的一半。还有Lyra,它不需要任何代码基础,但也可以让你轻松修改数据有关的视觉元素。
下图是她对可视化软件和编程语言两类的灵活性的评价排列:
4)交互图表 VS 静态图表:
你是需要创造基于网页的交互图表(如D3.js, Highcharts能做到的),还是PDF/SVG/PNG形态的图表就能满足你 (R和Illustrator可以做到)?
几年前,互动图表曾受到高度追捧,但现在关注焦点慢慢从“看起来怎么样”转移到“什么才更有意义”。
对于分析部分,交互特性往往也是很有必要存在的。Plotly和R的库Ggvis就可以让读者轻松地将鼠标悬停在可视元素上来查看基础数据。
下图是作者对于软件/编程的在静态和交互的划分:
看完了以上四个方面,
There Are No Perfect Tools, Just Good Tools for People with Certain Mindsets.
还是那句话,没有十全十美的工具,不同的工具适合不同的思维方法。
人各有长处,何况工具呢?它们都是依照特定的制作思路和功能被开发的,而真实使用场景下,使用者的思路和开发者们预想的方式可能会不同。开发者们往往会受到以前使用工具和他们同事的影响,况且他们也有着非常不同的专业背景:比如新闻学、统计学、计算机科学、设计专业等等等。
我的朋友Alberto Cairo曾经像我推荐过Yeeron和InZight两个工具,但是我觉得很难用。而他觉得难用的Lyra,却是个给我带来诸多启发的工具。这是因为我俩背景不同:他的首要自我认知是记者,其次才是设计师;而我则认为自己主要是个设计师。所以他喜欢能发现故事的可视化工具,而我则喜欢更高的设计自由度。
We Still Live in an “Apps Are for the Easy Stuff, Code Is for the Good Stuff” World.
我们仍然更认同“可视化软件更容易上手,但写代码可以做出更好的作品”。(所以想入可视化黑洞的同学们,学代码吧!hello world:)
大多数软件很容易上手,但功能有限。
大多数编程语言/图表库相对较难学习,但提供可以更多的灵活性和选项。
下面的图表是原作对学习的灵活性和难度之间的关联排列:可以看出大多数编程语言/图表库处于高难度和灵活多变的区域,而大多数支持一键生成的可视化软件则处于低难度与不灵活的区域。
作者还提到她自己很喜欢像Plotly,Tableau,Lyra和NodeBox这样的软件,只需要通过点击和拖动就可以制作图表,且拥有很高的灵活性。希望可以看到更多这类的工具,甚至希望能够把软件的可视化能力开发得像编程一样强大,当然这是一个很大的挑战。Excel就是一个很好的例子。它不但对初学者来说很容易上手,也能为Excel大神们提供了很大的灵活性。
“Every Tool Forces You Down a Path.”
每种工具都会引你走向一条路……
你想要站在宇宙中心去呼唤……是绝对不行的,要勇敢的走起来先!加斯特Do it!
附上原文:
WHAT I LEARNED RECREATING ONE CHART USING 24 TOOLS
这个妹纸的其他文章~(⚆ᴗ⚆)~
1)
One Chart, Twelve Tools2)
One Chart, Twelve Charting Libraries
twitter:
@lisacrost
//2017年,本美数课课代表要学代码了!p5.js
var button;
var like = 0;
function setup(){
createCanvas(100, 100);
button = createButton("like");
button.mousePressed(likePlus);
}
function likePlus(){
like++;
button.html(like);
} |