閱讀44 返回首頁    go 阿裏雲 go 技術社區[雲棲]


我的數據可視化之旅:從天文學家到數據可視化專家養成記


0?wx_fmt=jpeg


我經常收到很多人的郵件,詢問我步入數據可視化道路的各種問題。在我將自己的故事寫了九遍之後,我想在博客上公開這個故事也許會更輕鬆一些。這樣,我也能夠敘述得更加詳盡,甚至添加一些圖片。


從天文學家到數據科學家(我學習R的時候)再到自學而成的數據可視化設計師,這一過程中最大部分時間我都在做大量的數據可視化工作,我還花了很多業餘時間學習網絡語言和D3,閱讀了最佳實踐的相關書籍,參與線上數據可視化社區,並在各種學術會議或見麵會中闡釋自己對於這一課題的熱愛。現在,我在為Adyen工作的同時,也是一個數據可視化的兼職自由工作者。


至於全部的細節,先看一下我在幾年前做的各種表格的圖片,再繼續閱讀………


640?wx_fmt=png


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


高中畢業之後我進入萊頓大學學習天文學。我不僅對這一領域有興趣,同時對數學和物理也有極大熱情。大學第一年,我修了一門C++課程,這也是我的編程入門課程。(在我設計Neopets寵物網頁之前的幾年我確實學過簡單的HTML 和CSS, 但是到那時我基本都忘幹淨了)。我非常喜歡編程帶來的挑戰:通過設置變量,循環,使用if-else語句就可以做很多事情,比如提供你的生日,就可以計算出那天是星期幾。但是盡管我十分喜歡那門課程(或許並不是特指C++),在之後的三年我並沒有做任何編程相關的事情。


640


在我大學最後一年做畢業設計的時候,這也是我真正意義上的第一個研究課題。為了準備畢設,我整個大三都在學習IDL,一門天文學領域中(過去)常常使用的編程語言(而且沒有在其他領域使用......)。很久之後我發現,IDL和R語言很相似,我非常喜歡它,掌握的比C++好。在接下來的半年以及隨後兩年的天文學碩士課程學習中,我選擇做理論研究,所以更多的使用IDL。為了完成碩士論文,我甚至整天都在編程,通過模擬分析結果。我也學了一點SQL,因為我需要它從模型數據庫中獲取正確數據。但別理解錯了,這沒有讓我成為編程開發方麵的專家,IDL隻是一個數據分析工具。我並不會編寫APP或者工具,我隻會寫一些可以分析數據並生成數據和圖像(就像現在使用R一樣)的腳本。


我找出了我曾經為了本科和碩士畢業而寫的3篇論文。下麵幾張圖片就來自論文中的一些結果。具體內容記不清楚了,但是上麵那些圖的最右邊一張圖中的那些圓圈和下麵一排圖最右側的兩個散布圖是我自己分析生成的結果,其他的圖都是采用標準方式顯示一係列特定數據。


640



2012 | 成為顧問/數據科學家


我覺得自己並不想繼續深造攻讀PhD。盡管我很喜歡做研究,但是我十分痛恨寫論文。同時我也想接觸一些比較具象的、更多樣化的事物,讓世界上更多的人知道我做的事情。所以我開始找工作。當時Deloitte顧問團隊剛剛在他們的商業智能部門成立了一個分析小組,我因此也進入分析小組,找到了一份很適合自己的工作。


在Deloitte, 我的工作還是分析大量的數據,但現在這些數據都是關於人們,或是他們購買的物品,或是他們的房屋貸款,全都是和生活十分貼近的東西。因為不能再使用IDL了,我不得不學習新的數據分析工具。在我在Deloitte工作的第一年學了6種不同的語言,主要原因是我必須要麵向客戶需要,比如QlikView自帶的SQL版本,SAS(這不是我最喜歡的),VBA(甚至更糟糕),以及後來學的R。


R以及RStudio立刻就成為了我不可或缺的工具。它和IDL有相似的設計原理。你可以逐行運行代碼而不需要編譯整個腳本或一次性運行全部代碼。我發現逐行運行代碼很方便調試或者理解其他人寫的代碼。並且R本就是用來作為數據分析工具的。它有大量的工具包來幫助你實現一些功能,從大量數據的準備、文本挖掘、畫圖(使用ggplot2)到更多複雜抽象的功能比如計算地球上兩個地點之間的弧度距離,或者是一個連接Google 趨勢的API。



640


想要掌握ggplot2的“鏈接”思想的要領需要花費一些時間,它可以通過不同程度的堆疊不同選項來定義圖表的外觀。但是現在回顧起來,就可以理解得更深刻,並且它為我們提供了更多的可能。你需要多參考stackOverflow (或者瀏覽ggplot的在線文檔【https://docs.ggplot2.org/current/index.html】)來找到實現某些具體功能的例子。另一方麵,你也可以將生成的圖像保存為PDF並上傳到Illustrator來做一些最後的調整。然而,我也是在3年後一次偶然的機會之後才開始這麼做的。


上下兩個圖中是我第一年使用R做的圖表。我認為這些圖表都值得保存在我的個人電腦上,哈哈。當然我也做了上百張巨簡單也巨醜的圖,這些是不會保存的。條形圖、折線、散布圖等,這些都可以幫助我們更好的理解數據。


0


2013 | 意識到d3的存在


2013年二月,我去舊金山灣區參加了有關於數據科學的Strata 會議【https://conferences.oreilly.com/strata/strata2013】。在那裏,我加入了一個”d3入門” 的討論組。之前從沒有聽說過d3,我立刻就被吸引了。回家之後,我花了接下來一個星期的時間試圖建立我自己的可以在不同變量之間切換並可根據鼠標點擊進行變換的交互式散布圖。是的,我花了整整一周的休息時間從零開始去建立這個圖。因為我完全不懂JavaScript,對HTML和CSS的掌握也有限。同時,掌握d3的邏輯鏈和輸入+更新+退出的思維方式也是另一大難點(我認為我至少花了一年的時間才完全理解)。這一塊學起來很艱難,盡管很長時間裏我隻能取得一小點進步,但是我還是為d3可以創造的無限可能而癡迷不已。


640


經過那一次的嚴酷考驗,我已經學會了如何從已有的例子開始嚐試,不斷調整使之適用於自己的數據(通常可以在bl.ocks.org上找到,非常棒的網站,特別是在瀏覽blockbuilder.org的時候,你可以找到很多代碼塊!)。有時候,僅僅是把自己的數據顯示出來就十分複雜。我有時候會被很簡單的問題困住,因為不知道到底哪裏出了錯。最後我意識到,在JavaScript中對象的嵌套數組在複製到新的變量中仍保持可連接狀態……抓狂。


接下來一年我沒有頻繁使用d3。工作中為了快速完成任務有太多需要學習的東西。之後發現R 曲線圖比較快。


我們商業智能部門使用比較多的另一個工具是QlikView,這是一個可以創建交互式儀表板的程序,它也可以下載並安裝其他基於JavaScript的可視化擴展程序。2013年春季,QlikView組織了一次關於製作最優擴展程序的競賽。我和另外兩個同事覺得很有意思就參加了。我建議使用d3, 從d3中獲取圖表格式並在QlikView環境下使用。在這裏我省略細節,但是結果表明使d3網絡圖表在QlikView選項下工作是十分困難的(我做了一個拖放球然而最後沒有完成。但是我確實在網上找到了一個可以實現這個網絡的demo【https://us-d.demo.qlik.com/QvAJAXZfc/opendoc.htm?document=demo/Partner%20App%20Contest/Network%20Chart.qvw】)。很遺憾,我們最後以3票落差屈居第二,但是這也是的我在d3相關知識方麵又了巨大飛躍。



640


2014 | 發現自己的興趣


這樣持續學習一直到2014年 11月。期間,在大工程當中,因為有足夠多的時間去創建(或者調整一些其他我喜歡的東西),我也做了幾個基於d3的可視作品。比如適用於我經常使用的自組織映射算法的六角形熱圖,以及建立熱門購買物品之間關係的可視化網絡圖和關聯分析的結果(這個可視化作品主要基於 Raphaël Velt 【https://marketplace.gephi.org/plugin/gexf-js-web-viewer/】的工作) 。但是我仍然認為自己是一個數據科學家。問題是,我不確定我是否像之前那樣喜歡這個工作。為了將預測模型的準確度提高1%,我覺得挫敗感多於成就感。


640


但是在2014年11月,我又一次參加了Strata會議【https://conferences.oreilly.com/strata/strataeu2014】,在巴塞羅那。我仍然記得當時我內心有些茫然,不確定接下來一年自己的研究方向。之後,我聽了Mike Freeman的演講【https://conferences.oreilly.com/strata/strataeu2014/public/schedule/detail/37457】。他演講的題目是“數據可視化專家”。我突然獲得了靈感:“這也算獨立的工作嗎?我們可以成為數據可視化專家?”那一刻,我知道我又重拾激情。這個超棒的演講通過故事來傳遞複雜數據與觀點,我相信對你同樣有很大的幫助:)


在接下來的一個月我把自己所有的休息時間,晚上,周末,都花在了如何轉化我在Deloitte做的複雜圖表上,將電話品牌變換的輻射圖表【https://bl.ocks.org/nbremer/raw/7658623/】轉化成基於故事的可視化圖像【https://nbremer.github.io/Chord-Diagram-Storytelling/】。下麵我慢慢解釋如何從圖表中抽象出觀點。我把它寄給Mike Freeman,詢問了他的意見。他人超級好,對此也十分感興趣,並發了一份推送,這條推送甚至引起了d3的創始人Mike Bostock【https://twitter.com/mbostock 】的關注(我還保存了他轉發我的可視化作品的截圖,那時我在我的房間裏蹦了起來)。


640


我受到了極大的鼓舞。因此我開始大量閱讀關於最佳實踐的書籍,最重要的是,我創建了許多自己的工程,有關於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】。這都是在我的私人時間做的,但不要緊,它已經變成了我的興趣。我是在享受。


640


2015 | 成為數據可視化設計師


工作時間我和我的導師跟老板進行了一次長談,關於我想要專攻數據可視化。幸運的是,他們都非常支持,他們甚至向其他經理推薦我去做需要數據可視化的項目。當然這類工作並不是一直有的,所以我仍然在做數據分析的工作,但是隨著時間推移,我慢慢開始做更多有意思的項目(例如,國家狀況【https://www.visualcinnamon.com/portfolio/state-of-the-state】),這些項目通常都涉及到用d3為客戶數據創建可視化結果。



640


業餘時間,我繼續做自己的項目來學習。同時我也開始寫博客。2014年,我已經在博客中創建了一些簡單的東西,分享了一些東西,但並沒有多少實質上的內容。直到現在!我想了一個名字:visual cinnamon,開始加入一些我自己做的項目,分享我遇到的困難,遇到的有趣的問題,以及最終的結果。我創建了一些我自己學到的很具體的內容(通常是d3相關的)的教程,希望可以幫到更多人。2015年3月,我甚至把免費博客轉移到了WordPress上麵。這樣我可以發布更多的內容,比如代表作品集【https://www.visualcinnamon.com/portfolio】和一些列舉了我最喜歡的數據可視化資源【https://www.visualcinnamon.com/resources/learning-data-visualization】以供學習。


640


我還參加了兩個競賽。這是一個得到清洗過的數據和一個可視化主題的好方法。可以讓你不斷豐富你的作品集,也能讓你看到自己與其他人的差距(雖然也有一些不參加比賽的原因,也許這家公司想要不付款就獲得一大堆可供挑選的可視化作品,所以要小心)。第一名的作品是提供給Information is Beautiful【https://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和世界銀行的【https://www.worldbank.org/en/topic/urbandevelopment/publication/east-asias-changing-urban-landscape-measuring-a-decade-of-spatial-growth】關於中東城鎮化的交互式圖像【https://www.visualcinnamon.com/portfolio/urbanization】。


640


2016 | 被雇傭為數據可視化設計師


2015年12月,由於一些和數據可視化領域無關的原因,我換了一份工作,加入AdYen成為全職的數據可視化設計師。他們為我安排了數據分析的崗位,但是我告訴他們我換工作的條件就是想專攻數據可視化。他們看了我的網站後十分喜歡上麵的內容,最終同意我可以加入數據可視化工作部分(所以說,我花時間更新我的網站最後還是有回報的)!他們已經開始使用d3為客戶做儀表盤並想做進一步優化。


我在AdYen的大部分時間,要麼是更新舊的儀表盤,要麼是創建新的。調查最終使用者的需求,了解可以獲得的數據,做出(粗略的)設計,有時也會將其部署到AdYen的環境中(2-3個前端同事實現了我的大部分儀表盤設計)。


640


正是在這裏,我開始理解我更多的是一個原型設計者。我對網頁開發的了解程度並不足以讓我和負責網頁開發的同事並肩。但是在數據可視化方麵,在他們一籌莫展的時候,我可以設計並獨立建立實例。所以幾個月以後,我不再負責切實在 AdYen環境中部署內容,並更多的專注於設計和提出新思路。


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


2016年是我發現我真的喜歡表現出我對數據可視化的熱愛的年份(雖然仍然超級緊張,嗬嗬)。四月份的OpenVis【https://openvisconf.com/2016/】是我第一次參加國際會議,但是到了2016年底,我居然剛在墨爾本CSS會議【https://2016.cssconf.com.au/】發言完畢並飛回家!(這是我在2016年初沒有想到的)。這兩個會議我都申請了演講資格,但我認為(並不確定)是我的博客上分享的項目經曆,還有更重要的是教程,使得OpenVis社團給了我這次機會:)當然,有好的想法是最重要的,即使你沒有博客。對於與會者的選擇是完全匿名的,不論是誰,想法才是被挑選的依據。這是菜鳥級的人參與進來的好方法。


640


2016年,我開始與shirley Wu 合作,他是一個來自舊金山data sketches的優秀數據可視化設計師, 在數據矢量【https://www.datasketch.es/】上每月針對相同的話題創建更加深入的數據可視化,並寫出數據收集、準備、構思以及編程實現的過程。在我寫這篇文章時候,我們已經做了9個月,這期間我收獲了太多。不僅是技術上的,也有思想上的創新。如果你真的想要學習數據可視化,那沒有什麼可以打敗你。


640?wx_fmt=png


2017 | 成為自由工作者


在AdYen 做了一年儀表盤之後,我發現我作為顧問正在失去多樣性。每幾個星期到一個不同的行業,負責一個完全不同的客戶,處理不同的數據和問題。因此我決定至少用一年時間做一些事情實現那些在我腦中盤亙很久的想法。所以我從2017年1月開始成為數據可視化方麵的自由工作者【https://twitter.com/NadiehBremer/status/803321508793749505】。


然而,由於我在AdYen仍然有很多想要探索的內容,同時我也不確定我所偏愛的項目是否有足夠好的市場,所以我采用兼職的工作方式。在AdYen工作3天,剩下兩天(如果算上周末有還有另外兩天)做自由工作者。


順帶一提,關於我“偏愛的項目類型”,指的是更加富有創造性的數據可視化。我決定不再做有關儀表盤設計或構建的工作,因為我已經做得夠多了。


至於現在,一切都進展順利。忽略合同管理帶來的煩惱,我的工作十分有趣,並且再次多樣化。但是由於我僅做了3個月的自由工作者,我希望一年之後可以進一步擴展最後一個部分。


總結


好啦,這就是關於我的數據可視化之路的一個足夠長篇的陳述了,我是什麼時候以及如何學習掌握工具來構建可視化作品的,還有每個階段的一些(令人尷尬的)圖表。以及我抓住的一些看似可怕或者浪費時間卻受益匪淺的機會。希望我的故事能對你們深入研究數據可視化領域有所啟發,如果這是你想要的東西的話。亦或了解他人是如何一步一步摸索就已經很棒了,對我而言,這並不是一條清晰的路徑,努力與熱情——這是每個人都有的東西——使我最終達到我現在這個位置:以數據可視化作為主職工作。

原文發布時間為:2017-04-16

本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號

最後更新:2017-05-17 13:33:52

  上一篇:go  D-News | 中國移動打造華北最大數據中心,OPEC與阿聯酋將推出“油氣大數據項目”
  下一篇:go  CBinsight | 分析101個創業失敗案例,我們總結了20大失敗原因