数据可视化入门——我该从何开始?

选文:席雄芬 翻译:佘彦遥 姚佳灵 校对:丁雪 王方思

我爱数据——并且我把这一事实告诉了很多人。

如果你最近曾与我一起参加过聚会,我对在你的耳边喋喋不休地讲网页数据可视化工具或我最近热衷的酷酷的R包表示道歉。

如果你和我一起玩Fantasy Sports(梦幻体育游戏,是一种网络游戏,译者注),欢迎向我索取图表,我有好多图表。

一个完全没有必要的、对在Fantasy Football中是否选择第一个的分析,不需要这个。

因此,对我来说,最近越来越频繁地被问到:“尼克,我想要尝试数据分析和可视化,我应该从哪里开始?”一点也不感到惊讶。

不幸的是,天底下不存在一个适用于所有人的完美的解决方案,因为每个人的需求都有一些不同,而且大家已经知道的东西差别很大。在如今的技术、教育、商业氛围中,我最喜欢的就是来自非常不同的职业道路和背景的聪明人都在说:“我需要更懂数据。”

不过尽管有这么多差异,在多次谈话之后我已经发现了足够多的共性,以致于我觉得可以列出一个有用的初学者清单。很显然,它也不会适用于每一个人。你是否是一个经验丰富的工程师,嘲笑从JavaScript和Python开始学习的想法?现在已经懂得D3.js,而且在思考是否要从以上二种语言中挑一个学习或用D3制作自己的图表库?如果是的话,我的清单不适合你。这个清单是给想要从头学起的学术科学家、学校教师、研究顾问、项目经理、失业一族和MBA毕业生等。如果你是其中之一,那么从“无需编程”一直到“我爱编程”,以下是我觉得是你应该开始着手学习的地方:

无需编程

首先, 如果你还不够精通Excel,那就值得一试。我是认真的。至少也应该学一学Excel当中的数据透视图。它可能听上去很蹩脚,但Excel能做的事远远超过人们的预期。如果你足够努力的话,它甚至可以直接做出美丽的图表。

如果你已经有一些数据了,只是想要找一个好工具来尝试一下可视化或输出引人入胜的图表,性能良好又极为流行的Tableau是一个很好的选择。它有一个免费公众版本,也有一个非常昂贵的付费版本(学生可以免费获得)。它可以导出到网页,或者是研究论文里的统计图,也可以上传到Instagram或打印成一整面墙那么大的巨型图。Tableau Public的网站上有许多高质量的范例可以帮你激发灵感。遗憾的是,我要推荐的下一个“无需编程”的工具——Infoactive,它正在被停用……但从乐观的角度来看,它是被Tableau收购了。希望对于未来Tableau Public来说是个好消息。

需要一点编码

如果我得选一个只用于数据的语言,我会选R。它是免费的,在其基本的语言之上,由大量的持续发展、不断增加的有用的包的支持,同时,还有很多免费的资源以供学习。首先,在那些资源中,我认为Coursera的这些课程足够好了。

考虑到所有这些对一个真正的初学者来说有点太多了,但是这些课程形成了一条非常好的学习路径,从数据科学的关键术语和想法的介绍,通过探索性的数据分析,那涵盖了有用的R包,像ggplot(一个非常热门的可视化工具),一直到通过Shiny来增加交互性,在网页上发布以及用数据来说讲事实。

R是我使用最频繁的软件,用于小型、快速分析和特设的可视化上。如果你有个数据集,而Excel因为数据集太大、不够灵活、可视化效果不好而难以应付,那么R是快速应用的完美选择。

如果要速度快,你也许应该学点SQL。相对于R来说,SQL在应用范围上很有针对性,(真的,这不是一个苹果和另一个苹果的简单比较)。但是,如果你需要深入数据集,收集数据供其它工具或语言来使用,这是一个你了解SQL的好机会。并且,从长远来看,这能带来回报。

我爱编程

通常情况下,“我应该从哪里入手?”这个问题的出现是因为网络上出现了大量交互式可视化信息。

不幸的是,你会发现你要学习很多才能建立起自己的可视化知识体系。但是,这是个尽管艰难但是值得的目标。

幸运的是,有很多非常好的资源可以利用。在交互式可视化底层用到的库和如今许多在浏览器里运行的数据可视化是基于D3.js,这是由Mike Bostock发明的。如果你想在线发布或者建立交互式可视化,D3.js是应该学习的好工具。这意味着通常你需要先学点Javascript,然后再特别学下D3.js。

Bostock的网站是囊括众多范例和教程的金矿。我也建议看看Scott Murray的《Interactive Data Visualization for the Web》,你可以从O’Reilly购买,也可以通过下面这个链接在线免费学习:http://chimera.labs.oreilly.com/books/1230000000345/index.html

在线版本非常棒,你可以在那本书里实践编写代码段,运行代码,然后把输出结果和书中自带的交互式范例进行比较。Murray针对初学者设计了很好的流程,首先带你一点点了解网页浏览器的工作原理、HTML/CSS以及Javascript,最后才让你一头扎进D3的细节中学习,他的确做得很好!

D3有一个非常特别的优势,那就是地理空间可视化。D3在创建很多不同种类的地图上做得很好,如果你关注这个领域,下面这个链接是现成的专业教程:http://bost.ocks.org/mike/bubble-mao/。直接应用D3可能很难,但是你可以基于很多其它工具来调用D3从而让事情变得容易点。我建议至少学点D3的基本知识,而非只是使用更抽象的绘图库。但是,如果那样很棘手,像Plot.ly这样的工具能帮助你把事情变得更容易入手。

最后,如果你真想学一种能做所有事,而且刚好在数据可视化上很出色的语言,那么去学Python。Python是我所例举的工具中最通用和最强大的,在数据科学界它是非常流行的。

我发现Python作为一种多用途的语言非常平易近人,但是,说实话,如果你所想要做的只是探索和可视化数据,那么它也许有点过了。例如,Youtube是用Python实现的,1百万行语句。如果你真心想走Python这条路,对入门Python来说,Code Academy课程是比较短(10到20小时)但有趣的。

最后,像D3.js之于Javascript抑或ggplot之于 R,有许多Python库适用于数据可视化。建立于一个较早的流行库matplotlib之上的Seaborn和 Bokeh也许是目前最好的,但是这是一个迅速发展和提高的领域。Seaborn和 Bokeh这两个网站展示了各种你能用那些工具创建的可视化。

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2016-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯技术工程官方号的专栏

海量服务 | 论服务器极致化海量运营交付的未来

看标题一定会有些歧义, 总觉着是来讨论航运的, 其实是来和大家研讨我厂海量服务器的营运。

7.6K17
来自专栏ThoughtWorks

成都活动 | 7月14日「第三十三届中国软件质量大会」

本期第33届BQConf将在天府之国——成都举办,届时除了2名ThoughtWorks软件测试工程师将带来精彩分享,我们还邀请了一位蜗牛学院的测试讲师来分享实用...

1033
来自专栏鹅厂网事

弹性服务器架构-连接一切的力量

一颗芯片,寄存器通过总线向运算器输送数据。一台服务器,内存通过DDR总线与处理器完成数据互动。一个数据中心,存储集群通过以太网与计算集群形成对数据流的处理和加工...

7.6K11
来自专栏Android 开发者

[译] 利用 Android 构建 TV 的未来

1533
来自专栏企鹅号快讯

元旦这一天,很多程序员都做了这10个决定!

今天是2018第一天,我们又开始了新的一年。在大家都为新年制定目标计划的同时,作为一名程序猿,要想在互联网世界混得风生水起都有哪些要做的?下面小编为你列出了20...

17410
来自专栏即时通讯技术

阿里技术分享:阿里自研金融级数据库OceanBase的艰辛成长之路

OceanBase 是蚂蚁金服自研的分布式数据库,在其 9 年的发展历程里,从艰难上线到找不到业务场景濒临解散,最后在双十一的流量考验下浴火重生,成为蚂蚁金服全...

1533
来自专栏java一日一条

自由程序员的3个开发技巧

我们有三个系列的小技巧要分享:与你的客户沟通,保护你的声誉以及解决常见的自由职业问题。下面让我们开始吧!

651
来自专栏BestSDK

APP创业者必知的7个API供应平台,任何数据需求都能满足

编辑导语 我们都知道一句话“巧妇难为无米之炊”,数据源就是让数据产生价值中的那些大米。那大数据时代企业需要哪些数据呢?其实大部分数据源可以大致分为以下几类。 先...

3187
来自专栏大数据文摘

业界 | 成为CTO之前,我希望有人告诉我这些

982
来自专栏养码场

限时领取!全套Linux运维教程,200集实战教学,让你从入门到精通!

根据场主了解,Linux高级运维工程师的起薪在8-10K,1-3年工作经验能拿12-16K,3-5年工作经验能拿年薪30-50W。

1932

扫码关注云+社区