【独家】我的数据可视化之旅——从天文学家到数据可视化专家养成记

简介:

我经常收到很多人的邮件,询问我步入数据可视化道路的各种问题。在我将自己的故事写了九遍之后,我想在博客上公开这个故事也许会更轻松一些。这样,我也能够叙述得更加详尽,甚至添加一些图片。


从天文学家到数据科学家(我学习R的时候)再到自学而成的数据可视化设计师,这一过程中最大部分时间我都在做大量的数据可视化工作,我还花了很多业余时间学习网络语言和D3,阅读了最佳实践的相关书籍,参与线上数据可视化社区,并在各种学术会议或见面会中阐释自己对于这一课题的热爱。现在,我在为Adyen工作的同时,也是一个数据可视化的兼职自由工作者。

 

至于全部的细节,先看一下我在几年前做的各种表格的图片,再继续阅读………



2015 – 2011 | 以天文工作者的身份开始


高中毕业之后我进入莱顿大学学习天文学。我不仅对这一领域有兴趣,同时对数学和物理也有极大热情。大学第一年,我修了一门C++课程,这也是我的编程入门课程。(在我设计Neopets宠物网页之前的几年我确实学过简单的HTML 和CSS, 但是到那时我基本都忘干净了)。我非常喜欢编程带来的挑战:通过设置变量,循环,使用if-else语句就可以做很多事情,比如提供你的生日,就可以计算出那天是星期几。但是尽管我十分喜欢那门课程(或许并不是特指C++),在之后的三年我并没有做任何编程相关的事情。



在我大学最后一年做毕业设计的时候,这也是我真正意义上的第一个研究课题。为了准备毕设,我整个大三都在学习IDL,一门天文学领域中(过去)常常使用的编程语言(而且没有在其他领域使用......)。很久之后我发现,IDL和R语言很相似,我非常喜欢它,掌握的比C++好。在接下来的半年以及随后两年的天文学硕士课程学习中,我选择做理论研究,所以更多的使用IDL。为了完成硕士论文,我甚至整天都在编程,通过模拟分析结果。我也学了一点SQL,因为我需要它从模型数据库中获取正确数据。但别理解错了,这没有让我成为编程开发方面的专家,IDL只是一个数据分析工具。我并不会编写APP或者工具,我只会写一些可以分析数据并生成数据和图像(就像现在使用R一样)的脚本。

 

我找出了我曾经为了本科和硕士毕业而写的3篇论文。下面几张图片就来自论文中的一些结果。具体内容记不清楚了,但是上面那些图的最右边一张图中的那些圆圈和下面一排图最右侧的两个散布图是我自己分析生成的结果,其他的图都是采用标准方式显示一系列特定数据。

 


2012 | 成为顾问/数据科学家


我觉得自己并不想继续深造攻读PhD。尽管我很喜欢做研究,但是我十分痛恨写论文。同时我也想接触一些比较具象的、更多样化的事物,让世界上更多的人知道我做的事情。所以我开始找工作。当时Deloitte顾问团队刚刚在他们的商业智能部门成立了一个分析小组,我因此也进入分析小组,找到了一份很适合自己的工作。

 

在Deloitte, 我的工作还是分析大量的数据,但现在这些数据都是关于人们,或是他们购买的物品,或是他们的房屋贷款,全都是和生活十分贴近的东西。因为不能再使用IDL了,我不得不学习新的数据分析工具。在我在Deloitte工作的第一年学了6种不同的语言,主要原因是我必须要面向客户需要,比如QlikView自带的SQL版本,SAS(这不是我最喜欢的),VBA(甚至更糟糕),以及后来学的R。

 

R以及RStudio立刻就成为了我不可或缺的工具。它和IDL有相似的设计原理。你可以逐行运行代码而不需要编译整个脚本或一次性运行全部代码。我发现逐行运行代码很方便调试或者理解其他人写的代码。并且R本就是用来作为数据分析工具的。它有大量的工具包来帮助你实现一些功能,从大量数据的准备、文本挖掘、画图(使用ggplot2)到更多复杂抽象的功能比如计算地球上两个地点之间的弧度距离,或者是一个连接Google 趋势的API。



想要掌握ggplot2的“链接”思想的要领需要花费一些时间,它可以通过不同程度的堆叠不同选项来定义图表的外观。但是现在回顾起来,就可以理解得更深刻,并且它为我们提供了更多的可能。你需要多参考stackOverflow (或者浏览ggplot的在线文档http://docs.ggplot2.org/current/index.html)来找到实现某些具体功能的例子。另一方面,你也可以将生成的图像保存为PDF并上传到Illustrator来做一些最后的调整。然而,我也是在3年后一次偶然的机会之后才开始这么做的。

 

上下两个图中是我第一年使用R做的图表。我认为这些图表都值得保存在我的个人电脑上,哈哈。当然我也做了上百张巨简单也巨丑的图,这些是不会保存的。条形图、折线、散布图等,这些都可以帮助我们更好的理解数据。



2013 | 意识到d3的存在


2013年二月,我去旧金山湾区参加了有关于数据科学的Strata 会议https://conferences.oreilly.com/strata/strata2013。在那里,我加入了一个”d3入门” 的讨论组。之前从没有听说过d3,我立刻就被吸引了。回家之后,我花了接下来一个星期的时间试图建立我自己的可以在不同变量之间切换并可根据鼠标点击进行变换的交互式散布图。是的,我花了整整一周的休息时间从零开始去建立这个图。因为我完全不懂JavaScript,对HTML和CSS的掌握也有限。同时,掌握d3的逻辑链和输入+更新+退出的思维方式也是另一大难点(我认为我至少花了一年的时间才完全理解)。这一块学起来很艰难,尽管很长时间里我只能取得一小点进步,但是我还是为d3可以创造的无限可能而痴迷不已。



经过那一次的严酷考验,我已经学会了如何从已有的例子开始尝试,不断调整使之适用于自己的数据(通常可以在bl.ocks.org上找到,非常棒的网站,特别是在浏览blockbuilder.org的时候,你可以找到很多代码块!)。有时候,仅仅是把自己的数据显示出来就十分复杂。我有时候会被很简单的问题困住,因为不知道到底哪里出了错。最后我意识到,在JavaScript中对象的嵌套数组在复制到新的变量中仍保持可连接状态……抓狂。

 

接下来一年我没有频繁使用d3。工作中为了快速完成任务有太多需要学习的东西。之后发现R 曲线图比较快。

 

我们商业智能部门使用比较多的另一个工具是QlikView,这是一个可以创建交互式仪表板的程序,它也可以下载并安装其他基于JavaScript的可视化扩展程序。2013年春季,QlikView组织了一次关于制作最优扩展程序的竞赛。我和另外两个同事觉得很有意思就参加了。我建议使用d3, 从d3中获取图表格式并在QlikView环境下使用。在这里我省略细节,但是结果表明使d3网络图表在QlikView选项下工作是十分困难的(我做了一个拖放球然而最后没有完成。但是我确实在网上找到了一个可以实现这个网络的demohttp://us-d.demo.qlik.com/QvAJAXZfc/opendoc.htm?document=demo/Partner%20App%20Contest/Network%20Chart.qvw)。很遗憾,我们最后以3票落差屈居第二,但是这也是的我在d3相关知识方面又了巨大飞跃。



2014 | 发现自己的兴趣


这样持续学习一直到2014年 11月。期间,在大工程当中,因为有足够多的时间去创建(或者调整一些其他我喜欢的东西),我也做了几个基于d3的可视作品。比如适用于我经常使用的自组织映射算法的六角形热图,以及建立热门购买物品之间关系的可视化网络图和关联分析的结果(这个可视化作品主要基于 Raphaël Velt https://marketplace.gephi.org/plugin/gexf-js-web-viewer/的工作) 。但是我仍然认为自己是一个数据科学家。问题是,我不确定我是否像之前那样喜欢这个工作。为了将预测模型的准确度提高1%,我觉得挫败感多于成就感。



但是在2014年11月,我又一次参加了Strata会议https://conferences.oreilly.com/strata/strataeu2014,在巴塞罗那。我仍然记得当时我内心有些茫然,不确定接下来一年自己的研究方向。之后,我听了Mike Freeman的演讲https://conferences.oreilly.com/strata/strataeu2014/public/schedule/detail/37457。他演讲的题目是“数据可视化专家”。我突然获得了灵感:“这也算独立的工作吗?我们可以成为数据可视化专家?”那一刻,我知道我又重拾激情。这个超棒的演讲通过故事来传递复杂数据与观点,我相信对你同样有很大的帮助:)


在接下来的一个月我把自己所有的休息时间,晚上,周末,都花在了如何转化我在Deloitte做的复杂图表上,将电话品牌变换的辐射图表http://bl.ocks.org/nbremer/raw/7658623/转化成基于故事的可视化图像http://nbremer.github.io/Chord-Diagram-Storytelling/。下面我慢慢解释如何从图表中抽象出观点。我把它寄给Mike Freeman,询问了他的意见。他人超级好,对此也十分感兴趣,并发了一分赞不绝口的推送,这条推送甚至引起了d3的创始人Mike Bostockhttps://twitter.com/mbostock 】的关注(我还保存了他转发我的可视化作品的截图,那时我在我的房间里蹦了起来)。



我受到了极大的鼓舞。因此我开始大量阅读关于最佳实践的书籍,最重要的是,我创建了许多自己的工程,有关于top2000的歌曲https://www.visualcinnamon.com/portfolio/top-2000-songs,有关于太阳系外行星https://www.visualcinnamon.com/portfolio/exoplanets,有关于太阳系https://www.visualcinnamon.com/2015/01/scales-in-our-solar-system-enormity-of.html。这都是在我的私人时间做的,但不要紧,它已经变成了我的兴趣。我是在享受。



2015 | 成为数据可视化设计师


工作时间我和我的导师跟老板进行了一次长谈,关于我想要专攻数据可视化。幸运的是,他们都非常支持,他们甚至向其他经理推荐我去做需要数据可视化的项目。当然这类工作并不是一直有的,所以我仍然在做数据分析的工作,但是随着时间推移,我慢慢开始做更多有意思的项目(例如,国家状况https://www.visualcinnamon.com/portfolio/state-of-the-state),这些项目通常都涉及到用d3为客户数据创建可视化结果。



业余时间,我继续做自己的项目来学习。同时我也开始写博客。2014年,我已经在博客中创建了一些简单的东西,分享了一些东西,但并没有多少实质上的内容。直到现在!我想了一个名字:visual cinnamon,开始加入一些我自己做的项目,分享我遇到的困难,遇到的有趣的问题,以及最终的结果。我创建了一些我自己学到的很具体的内容(通常是d3相关的)的教程,希望可以帮到更多人。2015年3月,我甚至把免费博客转移到了WordPress上面。这样我可以发布更多的内容,比如代表作品集https://www.visualcinnamon.com/portfolio和一些列举了我最喜欢的数据可视化资源https://www.visualcinnamon.com/resources/learning-data-visualization以供学习。



我还参加了两个竞赛。这是一个得到清洗过的数据和一个可视化主题的好方法。可以让你不断丰富你的作品集,也能让你看到自己与其他人的差距(虽然也有一些不参加比赛的原因,也许这家公司想要不付款就获得一大堆可供挑选的可视化作品,所以要小心)。第一名的作品是提供给Information is Beautifulhttp://www.informationisbeautifulawards.com/showcase?action=index&ccategory=static&challenge=2&controller=showcase&page=1&type=challenges关于食物中毒https://www.visualcinnamon.com/portfolio/food-poisoning的静态可视化图像(很可惜这是他们做的最后一次挑战了),第二名作品是提供给Visualizing.org和世界银行的http://www.worldbank.org/en/topic/urbandevelopment/publication/east-asias-changing-urban-landscape-measuring-a-decade-of-spatial-growth关于中东城镇化的交互式图像https://www.visualcinnamon.com/portfolio/urbanization



2016 | 被雇佣为数据可视化设计师


2015年12月,由于一些和数据可视化领域无关的原因,我换了一份工作,加入AdYen成为全职的数据可视化设计师。他们为我安排了数据分析的岗位,但是我告诉他们我换工作的条件就是想专攻数据可视化。他们看了我的网站后十分喜欢上面的内容,最终同意我可以加入数据可视化工作部分(所以说,我花时间更新我的网站最后还是有回报的)!他们已经开始使用d3为客户做仪表盘并想做进一步优化。

 

我在AdYen的大部分时间,要么是更新旧的仪表盘,要么是创建新的。调查最终使用者的需求,了解可以获得的数据,做出(粗略的)设计,有时也会将其部署到AdYen的环境中(2-3个前端同事实现了我的大部分仪表盘设计)。



正是在这里,我开始理解我更多的是一个原型设计者。我对网页开发的了解程度并不足以让我和负责网页开发的同事并肩。但是在数据可视化方面,在他们一筹莫展的时候,我可以设计并独立建立实例。所以几个月以后,我不再负责切实在 AdYen环境中部署内容,并更多的专注于设计和提出新思路。

 

2016 | 与其他人更加深入的交流


2016年是我发现我真的喜欢表现出我对数据可视化的热爱的年份(虽然仍然超级紧张,呵呵)。四月份的OpenVishttps://openvisconf.com/2016/是我第一次参加国际会议,但是到了2016年底,我居然刚在墨尔本CSS会议http://2016.cssconf.com.au/发言完毕并飞回家!(这是我在2016年初没有想到的)。这两个会议我都申请了演讲资格,但我认为(并不确定)是我的博客上分享的项目经历,还有更重要的是教程,使得OpenVis社团给了我这次机会:)当然,有好的想法是最重要的,即使你没有博客。对于与会者的选择是完全匿名的,不论是谁,想法才是被挑选的依据。这是菜鸟级的人参与进来的好方法。

 


2016年,我开始与shirley Wu 合作,他是一个来自旧金山data sketches的优秀数据可视化设计师, 在数据矢量http://www.datasketch.es/上每月针对相同的话题创建更加深入的数据可视化,并写出数据收集、准备、构思以及编程实现的过程。在我写这篇文章时候,我们已经做了9个月,这期间我收获了太多。不仅是技术上的,也有思想上的创新。如果你真的想要学习数据可视化,那没有什么可以打败你。



2017 | 成为自由工作者


在AdYen 做了一年仪表盘之后,我发现我作为顾问正在失去多样性。每几个星期到一个不同的行业,负责一个完全不同的客户,处理不同的数据和问题。因此我决定至少用一年时间做一些事情实现那些在我脑中盘亘很久的想法。所以我从2017年1月开始成为数据可视化方面的自由工作者https://twitter.com/NadiehBremer/status/803321508793749505

 

然而,由于我在AdYen仍然有很多想要探索的内容,同时我也不确定我所偏爱的项目是否有足够好的市场,所以我采用兼职的工作方式。在AdYen工作3天,剩下两天(如果算上周末有还有另外两天)做自由工作者。

 

顺带一提,关于我“偏爱的项目类型”,指的是更加富有创造性的数据可视化。我决定不再做有关仪表盘设计或构建的工作,因为我已经做得够多了。

 

至于现在,一切都进展顺利。忽略合同管理带来的烦恼,我的工作十分有趣,并且再次多样化。但是由于我仅做了3个月的自由工作者,我希望一年之后可以进一步扩展最后一个部分。

 

总结


好啦,这就是关于我的数据可视化之路的一个足够长篇的陈述了,我是什么时候以及如何学习掌握工具来构建可视化作品的,还有每个阶段的一些(令人尴尬的)图表。以及我抓住的一些看似可怕或者浪费时间却受益匪浅的机会。希望我的故事能对你们深入研究数据可视化领域有所启发,如果这是你想要的东西的话。亦或了解他人是如何一步一步摸索就已经很棒了,对我而言,这并不是一条清晰的路径,努力与热情——这是每个人都有的东西——使我最终达到我现在这个位置:以数据可视化作为主职工作。


原文发布时间为:2017-04-09 

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

相关文章
|
3月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
60 1
|
3月前
|
数据可视化 数据挖掘 Python
告别枯燥数字,拥抱视觉盛宴!Python 数据分析中的数据可视化艺术,你 get 了吗?
在数据驱动时代,数据分析至关重要,但单纯依赖数据表格难以揭示其背后的洞见。这时,数据可视化便彰显出其重要性,尤其借助 Python 的强大工具如 Matplotlib、Seaborn 和 Plotly 等,可将数据转化为直观的图形。Matplotlib 提供高度定制的图表,Seaborn 则简化了图表美化过程。通过折线图、散点图、箱线图、小提琴图及热力图等多种图表形式,我们可以更深入地理解数据分布与关系,有效传达信息并支持决策制定。数据可视化不仅是一门技术,更是讲述数据故事的艺术。
78 3
|
4月前
|
数据可视化 JavaScript 前端开发
惊世奇迹!D3.js 铸就数据可视化辉煌,探索交互式图表与效果的奇幻之旅!
【8月更文挑战第12天】在数据驱动的时代,D3.js 作为领先的 JavaScript 库,以其强大的功能和灵活性在数据可视化领域脱颖而出。开发者可通过 D3.js 构建精美的交互式图表,如简单的柱状图或具备缩放拖拽功能的折线图,甚至将数据以地图、树形结构等独特形式展现。尽管学习曲线陡峭,但它在数据分析、商业智能等领域的广泛应用使其成为专业人士传达数据故事、辅助决策制定的强大工具。
106 1
|
Web App开发 数据可视化 前端开发
数据可视化|青训营笔记
数据可视化|青训营笔记
99 0
|
数据可视化 数据挖掘
动手学习数据分析(四)——数据可视化
动手学习数据分析(四)——数据可视化
134 0
动手学习数据分析(四)——数据可视化
|
数据可视化 定位技术
数据可视化基础|青训营笔记
数据可视化基础|青训营笔记
261 0
|
数据采集 存储 分布式计算
【数据可视化】数据可视化之美——用专家的眼光洞察数据
【数据可视化】数据可视化之美——用专家的眼光洞察数
261 0
【数据可视化】数据可视化之美——用专家的眼光洞察数据
|
数据可视化
8种基于ECharts改进的数据可视化,让你逆袭职场
8种基于ECharts改进的数据可视化,让你逆袭职场
182 0
8种基于ECharts改进的数据可视化,让你逆袭职场
|
机器学习/深度学习 Java 程序员
11月5日云栖精选夜读 | 掌握这25条小贴士,快速提升数据可视化能力!
可视化不是单纯的数据展示,其真正价值是设计出可以被读者轻松理解的数据展示。设计过程中的每一个选择,最终都应落地于读者的体验,而非设计者个人。 本文提到了一些常见错误,也是我们团队总结出的一些技巧。这25条小贴士能够快速提升和巩固你的数据可视化设计。
2296 0