《鮮活的數(shù)據(jù)--數(shù)據(jù)可視化指南》這本書是我最開始了解數(shù)據(jù)可視化看的第一本書,讓我對(duì)數(shù)據(jù)可視化從一個(gè)看一團(tuán)迷霧的小白白可以大概的了解到了一個(gè)輪廓。
通過整理椎咧,做數(shù)據(jù)可視化的步驟如下:
- 明確問題/故事
- 處理數(shù)據(jù)
- 選擇可視化工具
- 確定可視化方式
明確問題/故事
每一個(gè)數(shù)據(jù)都代表了一種事實(shí)依據(jù)鹰服,用數(shù)字或者文字的方式記錄著一些行為和事實(shí)议惰。數(shù)據(jù)是現(xiàn)實(shí)生活的一種映射,其中隱藏著許多故事腹泌,在那一堆堆的數(shù)字之間存在著實(shí)際的意義嘶卧、真相和美學(xué)。書中反復(fù)提到的一個(gè)觀點(diǎn)是凉袱,要讓數(shù)據(jù)說話芥吟,數(shù)據(jù)可視化的過程就是在給觀眾講故事的過程,我們應(yīng)當(dāng)以講故事的角度來思考如何可視化专甩。
因此在做數(shù)據(jù)可視化之前需要明確钟鸵,要講怎樣一個(gè)故事,即明確觀者的需求是什么涤躲,他們想要看到什么或是我們想要給他們展示什么棺耍。這不同于數(shù)據(jù)分析的可視化,是可以讓用戶自由的選擇自己想要如何展示數(shù)據(jù)种樱,而是在明確了數(shù)據(jù)和需求的基礎(chǔ)上蒙袍,來進(jìn)行展示。
我曾經(jīng)在ThoughtWorks內(nèi)部平臺(tái)的Monitor&Analysis團(tuán)隊(duì)呆過一年的時(shí)間嫩挤。當(dāng)時(shí)我們當(dāng)時(shí)在做的就是對(duì)ThoughtWorks內(nèi)部的眾多系統(tǒng)進(jìn)行監(jiān)控害幅,當(dāng)這些系統(tǒng)出現(xiàn)問題時(shí),可以及時(shí)的通知到相應(yīng)的團(tuán)隊(duì)岂昭,各個(gè)團(tuán)隊(duì)的人也可以訪問到我們的平臺(tái)來觀看自己系統(tǒng)的穩(wěn)定性矫限。這就是一個(gè)典型的數(shù)據(jù)可視化的平臺(tái),整個(gè)平臺(tái)在做的事情就是講述這些系統(tǒng)的故事,這些系統(tǒng)的可用性叼风、宕機(jī)時(shí)間、訪問人數(shù)等等棍苹。
處理數(shù)據(jù)
處理數(shù)據(jù)包括收集數(shù)據(jù)和組織數(shù)據(jù)无宿。
收集數(shù)據(jù)需要明確數(shù)據(jù)源,當(dāng)前搜索引擎上可以提供的數(shù)據(jù)簡直多到無法想象枢里,而且每天人們也在產(chǎn)生著TB級(jí)的數(shù)據(jù)量孽鸡,在海量的數(shù)據(jù)中,哪些數(shù)據(jù)是講述故事所需的素材需要明確識(shí)別出來栏豺,因此需要明確數(shù)據(jù)源彬碱。可以通過由他人提供奥洼、找尋相應(yīng)API巷疼、尋找一些官方數(shù)據(jù)等方式來收集數(shù)據(jù)。
像之前在Monitor&Analysis團(tuán)隊(duì)中灵奖,我們就是通過其他團(tuán)隊(duì)提供一定的數(shù)據(jù)源和使用第三方的一些收集工具結(jié)合嚼沿,來對(duì)哪些內(nèi)部系統(tǒng)進(jìn)行數(shù)據(jù)收集的。
組織數(shù)據(jù)就是通過將數(shù)據(jù)進(jìn)行轉(zhuǎn)換瓷患,轉(zhuǎn)換成自己需要的格式即可骡尽。就像從json轉(zhuǎn)換成一些特定格式或者從excel轉(zhuǎn)換成json一樣。
可視化方式
處理過數(shù)據(jù)之后擅编,就需要對(duì)數(shù)據(jù)進(jìn)行可視化攀细。即真正的開始講述故事。
圖表和圖形并不只是將統(tǒng)計(jì)結(jié)果可視化爱态,它們還對(duì)可視化展現(xiàn)的內(nèi)容進(jìn)行解釋谭贪。數(shù)據(jù)本身或許并不一定趣味盎然,令人產(chǎn)生深刻印象的是你設(shè)計(jì)數(shù)據(jù)和演示數(shù)據(jù)的方法肢藐。
好的數(shù)據(jù)設(shè)計(jì)可以幫助讀者更清楚地理解整個(gè)故事故河。因此需要站在讀者的角度上進(jìn)行設(shè)計(jì),才能知道對(duì)于讀者來說吆豹,哪些元素是需要解釋清楚的鱼的。重要的點(diǎn)或區(qū)域都帶有注釋,使用的符號(hào)和顏色都進(jìn)行詳細(xì)的說明痘煤,只有在閱讀這樣的圖表時(shí)凑阶,讀者才能理解數(shù)據(jù)的意義。沒有了標(biāo)記衷快,圖表就毫無意義宙橱。
而不好的設(shè)計(jì)則會(huì)直接產(chǎn)生謬誤。在某些時(shí)候,統(tǒng)計(jì)也會(huì)產(chǎn)生錯(cuò)誤的假象师郑,但造成錯(cuò)覺的并不是數(shù)字本身环葵,而是運(yùn)用數(shù)字的人。
之前在Monitor&Analysis團(tuán)隊(duì)的時(shí)候宝冕,有一次和其他團(tuán)隊(duì)一同進(jìn)行敏捷成熟度的評(píng)估张遭,進(jìn)行匯報(bào)的時(shí)候我們團(tuán)隊(duì)的評(píng)分就如下圖中的第一個(gè)柱形所示,顯得比其他團(tuán)隊(duì)差了一大截地梨,近乎是0分菊卷。這個(gè)評(píng)分一下就吸引了大佬們的眼球。
然而事實(shí)如下圖所示宝剖,我們并不是什么都沒有做洁闰,僅僅只是制作圖表的人將基準(zhǔn)線抬高了,給觀眾的感受就截然不同万细。
接下來我會(huì)就書中提到的可視化展示方式進(jìn)行簡單的介紹(以下圖形的例子皆來自網(wǎng)絡(luò)扑眉,如有侵權(quán)請(qǐng)聯(lián)系我,立即刪除):
-
有關(guān)時(shí)間趨勢(shì)的可視化:目標(biāo)在于展示趨勢(shì)雅镊,分為離散的時(shí)間點(diǎn)和隨時(shí)間而連續(xù)不斷變化的現(xiàn)象襟雷。
-
柱形圖:用高度作為視覺線索。柱形的寬度和彼此之間的間隔不代表數(shù)值仁烹。要注意耸弄,保持?jǐn)?shù)值尺度從0開始標(biāo)注,否則柱形圖表示的關(guān)系會(huì)有問題卓缰,也讓人難以從視覺上進(jìn)行比較计呈。就如上邊的例子所寫的那樣。
-
散點(diǎn)圖:用位置作為視覺線索征唬。由于點(diǎn)的占據(jù)空間小捌显,能夠更好地體現(xiàn)出“流”的感覺。通常用于表現(xiàn)2個(gè)變量間的關(guān)系(通過位置進(jìn)行相互比較)总寒,由于是相對(duì)比較扶歪,因此數(shù)值軸不必總從0開始。
-
折線圖:將點(diǎn)和點(diǎn)相連摄闸。數(shù)值最好從0開始善镰,這樣不會(huì)影響到圖標(biāo)的比例范圍。注意年枕,水平軸長度會(huì)影響到觀察到的趨勢(shì)炫欺,如果過短則會(huì)顯的點(diǎn)和點(diǎn)間的增長比較夸張,而如果過長熏兄,則較難發(fā)現(xiàn)其中的變化模式品洛。
-
梯形圖:與直接連接2點(diǎn)不同树姨,線會(huì)保持在同一數(shù)值,直到數(shù)值發(fā)生變化桥状,則線會(huì)直接垂直跳躍到下一數(shù)值帽揪。
-
柱形圖:用高度作為視覺線索。柱形的寬度和彼此之間的間隔不代表數(shù)值仁烹。要注意耸弄,保持?jǐn)?shù)值尺度從0開始標(biāo)注,否則柱形圖表示的關(guān)系會(huì)有問題卓缰,也讓人難以從視覺上進(jìn)行比較计呈。就如上邊的例子所寫的那樣。
-
有關(guān)比例的可視化:用圖表呈現(xiàn)出數(shù)據(jù)的總體分布
-
餅圖:總和應(yīng)為100%。要良好的組織數(shù)據(jù)辅斟,如按照比例從大到小的方式進(jìn)行展示等台丛,且不要將餅圖分成太多塊。顏色會(huì)影響人們對(duì)圖標(biāo)的閱讀砾肺。
-
面包圈圖:和餅圖類似,也不適合應(yīng)對(duì)較多數(shù)值防嗡。
-
堆疊柱形圖:數(shù)據(jù)存在子分類变汪,且各子分類之和有意義
-
板塊層級(jí)圖:這類圖標(biāo)可展示3類信息:大小、顏色蚁趁、層級(jí)裙盾。是基于面積的可視化方式,每個(gè)板塊的尺寸大小通過面積進(jìn)行度量和比較他嫡,而不是通過方塊的邊長番官。外部矩陣代表父類別,內(nèi)部矩陣代表子類別钢属。更適合展示層級(jí)結(jié)構(gòu)/樹狀結(jié)構(gòu)的數(shù)據(jù)徘熔。面積總和也應(yīng)是100%
-
堆疊面積圖:這個(gè)圖雖然是展示了比例,但是也帶有時(shí)間屬性淆党。這類圖表有一定的缺陷:
- 當(dāng)類別酷师、數(shù)據(jù)點(diǎn)過多時(shí),難以閱讀染乌,無法體現(xiàn)價(jià)值
-
由于每個(gè)數(shù)據(jù)點(diǎn)受下方數(shù)據(jù)點(diǎn)的影響山孔,因此每一層的變化趨勢(shì)難以識(shí)別
-
餅圖:總和應(yīng)為100%。要良好的組織數(shù)據(jù)辅斟,如按照比例從大到小的方式進(jìn)行展示等台丛,且不要將餅圖分成太多塊。顏色會(huì)影響人們對(duì)圖標(biāo)的閱讀砾肺。
- 有關(guān)關(guān)系的可視化:關(guān)聯(lián)性可以幫我們根據(jù)某一已知指標(biāo)來預(yù)測(cè)另一指標(biāo),可以展現(xiàn)群體間荷憋、子群體間台颠、子群體內(nèi)部的個(gè)體間的關(guān)聯(lián)關(guān)系。
散點(diǎn)圖:可以展示時(shí)間與某一變量或2個(gè)變量之間的關(guān)系勒庄。
-
LOESS曲線+散點(diǎn)圖:使2個(gè)變量間的關(guān)系更加明確串前。
-
散點(diǎn)圖矩陣:繪制每一種可能的配對(duì)。
-
氣泡圖:可以展示3種信息:x軸锅铅、y軸和氣泡面積的大小
-
直方圖:圖形化的莖葉圖酪呻,水平軸和垂直軸都是連續(xù)的。(與柱形圖的區(qū)別:柱形圖的水平軸上各個(gè)數(shù)值是相互分離的)
* 密度圖:對(duì)分布的細(xì)節(jié)變化進(jìn)行可視化盐须。面積代表整體玩荠,即100%![image.png](https://upload-images.jianshu.io/upload_images/3979148-a640757830ba4648.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 直方圖矩陣:用于對(duì)照和比較分布的變化![image.png](https://upload-images.jianshu.io/upload_images/3979148-301b68efd56576f7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 系列組圖:將大量的小表歸于一起,方便多個(gè)群組、分類之間及其內(nèi)部比較阶冈。![image.png](https://upload-images.jianshu.io/upload_images/3979148-8c966b6d031db028.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
-
用于尋找差異的可視化
-
熱力圖:橫向?yàn)橐粋€(gè)對(duì)象闷尿,縱向?yàn)橐粋€(gè)特征,顏色代表數(shù)值/程度女坑。顏色的選擇往往會(huì)奠定故事的整體基調(diào)填具,嚴(yán)肅的主題一般會(huì)使用中性、柔和的色調(diào)匆骗,而休閑或激昂的主題則會(huì)選擇明亮的色調(diào)劳景。熱力圖的好處在于可以一次性看到所有數(shù)據(jù)。缺點(diǎn)在于關(guān)注點(diǎn)會(huì)落在單個(gè)的點(diǎn)上碉就,難以相互比較盟广。
-
切爾諾夫臉譜圖:根據(jù)數(shù)據(jù)集中的數(shù)字將多個(gè)變量一次性展現(xiàn)在人臉的各個(gè)部位上。每個(gè)部位代表對(duì)象的一個(gè)變量瓮钥〗盍浚可以表示多個(gè)變量的數(shù)據(jù)。
-
星圖:又稱雷達(dá)圖碉熄、蜘蛛圖桨武。可以表示多變量的數(shù)據(jù)锈津。變體有南丁格爾圖呀酸、風(fēng)玫瑰圖等。
-
平行坐標(biāo)圖:用于描述群組或個(gè)變量之間的關(guān)系一姿。(星圖和切爾諾夫臉譜圖可以方便的找出各個(gè)對(duì)象與同類之間的差異七咧,但不具備描述群組或個(gè)變量之間的關(guān)系的能力。)
-
熱力圖:橫向?yàn)橐粋€(gè)對(duì)象闷尿,縱向?yàn)橐粋€(gè)特征,顏色代表數(shù)值/程度女坑。顏色的選擇往往會(huì)奠定故事的整體基調(diào)填具,嚴(yán)肅的主題一般會(huì)使用中性、柔和的色調(diào)匆骗,而休閑或激昂的主題則會(huì)選擇明亮的色調(diào)劳景。熱力圖的好處在于可以一次性看到所有數(shù)據(jù)。缺點(diǎn)在于關(guān)注點(diǎn)會(huì)落在單個(gè)的點(diǎn)上碉就,難以相互比較盟广。
-
有關(guān)空間的可視化
-
地圖
-
地圖
關(guān)于異常值
大部分異常都只是筆誤而已叮叹,但有些異常卻真的存在艾栋,而它們就是有意思的地方,可以作為故事的重點(diǎn)蛉顽。不要隨意的剔除異常值蝗砾,異常值往往才是故事的關(guān)鍵。
個(gè)人感悟
最后想說一點(diǎn)個(gè)人的感悟携冤,作為一個(gè)想要在大數(shù)據(jù)方面找到一個(gè)方向的程序員悼粮,讀完這本書之后,就有點(diǎn)兒放棄了數(shù)據(jù)可視化這個(gè)方向曾棕。我的理解是扣猫,在數(shù)據(jù)可視化方面,如果想要有一定發(fā)展翘地,更多的是要在選擇怎樣的圖形對(duì)數(shù)據(jù)進(jìn)行展示申尤,就像書中所說的那樣癌幕,怎樣講好一個(gè)故事。如果在指責(zé)方面進(jìn)行劃分昧穿,這方面的工作會(huì)劃分到UX的領(lǐng)域勺远,程序員更多的是進(jìn)行實(shí)現(xiàn)方面的事情,這恰恰是個(gè)體力活时鸵,可能很多程序員都可以很好地勝任胶逢,很難說是一個(gè)可以向上走的方向。不過我也有一個(gè)疑問饰潜,在大數(shù)據(jù)這個(gè)方向上初坠,可視化是一個(gè)關(guān)鍵、不可失的一環(huán)彭雾,也有相應(yīng)的職位某筐,那么對(duì)于想要在大數(shù)據(jù)可視化方向發(fā)展的技術(shù)人員來說,是否要轉(zhuǎn)型成UX型Dev呢冠跷?在這個(gè)方向,要怎樣更好的向前走呢身诺?如果有了解的同志蜜托,希望可以共同探討。