真依然很拉風,簡書《數據可視化》專欄維護者,里面有很多優秀的文章,本文便是其中一篇。
文章總結了多種數據可視化圖形,并簡要介紹了各種圖形的作用,能為科研工作者在數據可視化階段提供新的思路,在此分享給大家。(略有修改和補充,藍色的字可點擊跳轉查看對應圖形怎么在R中繪制)
原文如下 :
首先從維基百科上搬出數據可視化的概念:
數據可視化是關于數據之視覺表現形式的研究;其中,這種數據的視覺表現形式被定義為一種以某種概要形式抽提出來的信息,包括相應信息單位的各種屬性和變量。
用人話簡單來說,數據可視化就是用圖形的方式來表征數據的規律。
首先要明確幾點:
本文旨在總結數據可視化基本套路,理解了本文的內容,就算不能在數據可視化比賽中拿獎,應付日常工作應該也夠了。熟悉了套路怎么看,再結合專業知識,就可以解釋可視化結果了。
常用圖形散點圖
散點圖用來表征兩個(如果多個就分面,如上圖)數值型變量間的關系,每個點的位置(即x軸和y軸坐標)映射著兩個變量的值。當然對于三個數值型變量,也有三維散點圖,不過用得不多。
氣泡圖
在散點圖的基礎上加一個維度,把各個點的面積大小映射一個新的變量,這樣不僅點的位置還有大小表示數據特征。
折線圖
把散點圖各個散點用折線連接起來就成了折線圖,當然不僅僅只是為了好看,當散點越多,折線就越平滑地趨近于曲線,能更加貼切地反映連續型變量的規律。
面積圖
面積圖
把折線圖進一步往坐標軸投影就成了面積圖,本質其實跟折線圖沒區別,只是看起來更加飽滿一點。
柱狀圖是一種用得很廣泛的圖形,它表征分類型變量 vs 數值型變量的關系。如果分類型變量的每一個取值還能繼續分類,那么簡單的柱狀圖就變成了復雜的柱狀圖,每一個類別僅由一根柱變成多根柱,多根柱可以串列,也可以并列。
值得一提的是,柱狀圖一般需要排序:如果分類型變量是有序的,按照它本身的順序排列即可;如果分類型變量無序,那么則根據數值型變量的大小進行排序,使柱狀圖的高度單調變化。(排序的宗旨是直觀的表達出想展示的規律)
條形圖
條形圖
只不過把柱狀圖坐標旋轉一下,豎著的變成橫著的,這個可根據版面自由選擇。上圖示例就是串列的堆疊條形圖。
南丁格爾玫瑰圖
玫瑰圖
本質還是柱狀圖,只不過把直角坐標系映射成極坐標系。看起來比柱狀圖更美觀。
瀑布圖
瀑布圖
瀑布圖是柱狀圖的一種延伸,它一般表示某個指標隨時間的漲跌規律,每一個柱狀也不都是從0開始的,而是從前一個柱狀的終點位置開始,這樣既反映了每一個時刻的漲跌情況,也反映了數值指標在每一個時刻的值。
餅圖
餅圖的本質仍是柱狀圖,只不過餅圖一般用來表示各個類別的比例,而不是絕對的數值,用角度來映射大小。
值得一提的是,因為一個圓餅只有360度,如果類別太多了,這個餅會被切割得非常細,不利于閱讀;這種情況下老老實實地用柱狀圖。
圓環圖
圓環圖
本質就是餅圖,只不過把實心圓換成了空心的圓環;如果清一色的餅圖太過單調,可以考慮換個環形圖。
chart
chart
chart看起來跟餅圖比較像,但比餅圖更復雜得多。它從中心向外輻射,每輻射一層就細分一層,用來表示多個變量多層之間的比例關系。
馬賽克圖
馬賽克圖
馬賽克圖比較復雜,與柱狀圖相比,它的分類變量就多了幾個,而且還能實現交叉映射,所以比柱狀圖更抽象,更細化。
馬賽克圖隱含著大量的數據信息。例如:(1)從船員到頭等艙,存活率陡然提高;(2)大部分孩子都處在三等艙和二等艙中;(3)在頭等艙中的大部分女性都存活了下來,而三等艙中僅有一半女性存活;(4)船員中女性很少,導致該組的標簽重疊(圖底部的No和Yes)。繼續觀察,你將發現更多有趣的信息。關注矩形的相對寬度和高度,你還能發現那晚其他什么秘密嗎?
擴展的馬賽克圖添加了顏色和陰影來表示擬合模型的殘差值。在本例中,藍色陰影表明,在假定生存率與船艙等級、性別和年齡層無關的條件下,該類別下的生存率通常超過預期值。紅色陰影則含義相反。一定要運行該例子的代碼,這樣你可以真實感受下著色圖形的效果。圖形表明,在模型的獨立條件下,頭等艙女性存活數和男性船員死亡數超過模型預期值。如果存活數與船艙等級、性別和年齡層獨立,三等艙男性的存活數比模型預期值低。嘗試運行(),可以了解更多馬賽克圖的細節。
直方圖
直方圖
直方圖看起來跟柱狀圖很像,但其實本質并不一樣 (這一點需要注意)。直方圖用來表征一個數值型變量的分布,具體來說就是把這個連續型變量劃分成多個區間,然后統計各個區間的頻數。直方圖橫軸是數值型變量本身的值,縱軸是頻數。
概率密度曲線圖
概率密度曲線圖
概率密度曲線圖本質與直方圖類似,不過縱軸不是頻數而是頻率。正如折線圖和面積圖一樣,概率密度曲線圖也可自由選擇要不要面積投影。這個圖太學術了,一般出現在數學教材中(比如正態分布……)。
雷達圖
很多游戲中的人物能力極向對比就是以雷達圖表示的。柱狀圖一般是一個分類型變量不同類別間的比較,雷達圖可以是多個數值不在同一個scale之下;更具體地說,柱狀圖一般是橫向比較,雷達圖既可以多個觀測之間的縱向比較ppt雷達圖改顏色,也可以是一個觀測在不同變量間的橫向比較。
值得一提的是,雷達圖如果用來橫向比較,需先把各個數值變量作歸一化處理。
箱線圖
箱線圖亦稱盒須圖,也是挺學術的一個圖。它用來表征各個數值型變量的分布狀況,每一條橫線代表分位數,盒內部的橫線代表中位數,點代表異常值。
小提琴圖
小提琴圖本質與直方圖一樣,都是表征數值型變量的分布,每一個小提琴的寬度代表它在該高度處的頻率范圍。
熱力圖
熱力圖一般以顏色來映射密度或者其他數值變量,一般來說,顏色最深的地方表示數據最集中。(比較常用,對于熱圖的解釋還需要看圖例的含義)
日歷圖
日歷圖
日歷圖是熱力圖的變種,它把每一個矩形重新排列成日歷的形狀,這樣可以方便地觀察一段時間內每一天的數值特征。
地圖
地圖
地圖用來可視化地理數據,這些數據一般由國家地理測繪部門提供,在一些網站上也能找到,常用的數據格式有shp、JSON、csv等。
地圖的繪制原理是基于大量的散點,勾勒成曲線,再連接成多邊形——其中每一塊多代形代表一個地區,可以是國家、省、市、區縣等。
地圖的應用主兩有種情況:一是如上圖一樣以顏色填充每一個多邊形來映射一個指標,這種情況下地圖跟柱狀圖本質相同,但是多了多邊形之間的位置關系;另一種是在地圖上疊加散點或者曲線,來表征各個點之間的地理位置。
地球圖
地球圖
地圖是二維的,三維的就是地球圖。這種圖形一般是交互的,也就是說你可以用鼠標實現地球的旋轉和縮放等操作。
值得一提的是,不要僅僅為了3D就使用地球圖,要看數據本身的情況。如果你的數據范圍本來就覆蓋全球,用地球圖很合適;但如果你的數據范圍小,就一個國內,甚至一個省市內的,搞個地球圖就太浮夸,而且整個球上只有一個非常小的區域有數據,是很不和諧的。
網絡圖
網絡圖的元素包含點和邊,邊分為無向邊、單向邊和雙向邊來表征點與點的連接關系,邊的粗細可以映射這種關系的強弱。
arc
arc
arc 也是一種網絡圖,只不過它把所有的節點一字排開,以弧線來表示邊。這樣看起來藝術感更強,適合于節點較多的網絡關系可視化。
和弦圖
和弦圖一般用來表示雙向的網絡關系(比如AB兩個城市相互流入流出了多少人),數據結構一般為鄰接矩陣。當節點很多的時候,各種弧線交叉得就非常密密麻麻,這種情況下,要么交互,要么考慮別的圖形。
edge
edge
edge 也表示節點間的網絡關系,不過它把邊扭曲成曲線,這樣就適合節點比較多的可視化。
矩形樹圖
矩形樹圖
矩形樹圖本質就是決策樹的可視化,只不過排成矩形。它也是把各個變量層層細分,這一點跟圖類似。當變量比較多的時候,做成交互可縮放的形式更合適。
平行坐標圖
平行坐標圖
平行坐標圖的優點是可以把多個變量并形排開,把每一個記錄都以折線連接上。這樣當數據量大的時候,其實可以很方便地觀察各個變量的分布情況。
桑基圖
桑基圖看起來跟平行坐標圖有點像,但含義不一樣。桑基圖主要的用法是表征流量在各個層級的流動關系,上一層如何向下一層分散,下一層如何由下一層匯聚。
漏斗圖
漏斗圖
互聯網運營有一個很重要的概念就是層級轉化,這個每層的轉化率用漏斗圖來可視化,形神俱佳。如果兩層之間的寬度近似,表征該層的轉化率高;如果兩層之間的寬度一下子減小了很多,表示轉化率低。
儀表盤
儀表盤
儀表盤的觀賞性大于實用性,實際上它的功能很簡單,就是表征一個數值型變量在最小值和最大值之間的什么分位。
象柱形圖
象柱形圖
象柱形圖其實就是柱形圖,只不過把柱子換成了其它的圖形。如果數據本身有比較具體、形象的含義和背景,那么用象柱形圖是一種比較新穎的選擇。
主題河流圖
主題河流圖
主題河流圖好看,但不好解釋,如果不是交互式的,最好不要用。它一般是把多個類別隨時間的變化數據堆疊起來,表征隨時間變化的趨勢。
詞云圖
詞云圖即是對詞匯的頻數進行可視化,一個詞越大它出現的次數就越多,一般與文本挖掘配合使用。
在實際的數據可視化中,往往不是孤立地用一個基本圖形,把多個圖形組合、鄰接,能交叉對比出更多的信息。比如在柱狀圖上疊加折線圖,在地圖上疊加散點圖,把多個柱狀圖放在一起對比等等。
記住數據可視化展現信息是第一位的,好看倒是其次。
圖形語法
看了以上這么多圖形,對可視化圖形也有了一個感性的認識。現在基于粗略地介紹一下圖形語法ppt雷達圖改顏色,個人總結,既不全面也不系統;想學習全面的圖形語法請去專門學習。
掌握了圖形語法,對理解可視化的本質,構思圖形屬性很有幫助;只有掌握了圖形語法,才能真正自由地去創造數據可視化,而不僅僅只是往模板里套數據。
交互方式
去年在浙大接受可視化培訓時,陳為老師(浙大教授,國內數據可視化領域比較權威的學者)提到了一句:交互性是數據可視化與信息圖的區別。什么是交互,就是用戶輸入一個信號,可視化系統能給出響應,以幫助他更好地理解可視化。數據可視化的本質是以簡單、直接的圖形幫助讀者更容易理解數據背后的規律,但許多可視化圖形做得太復雜了,反而不利于解讀,這個時候交互就能比較有效地解決這個問題。
交互的好處主要有:
常用配色
對于一個直男來說,配色方案一直是很苦惱的問題。有條件的話最好找設計師參考,沒有的話最簡單的方法就是參考比較成功的可視化作品的配色風格。
配色方案沒有具體的規律總結,主要靠感覺。下面貼一些配色方案自行體會即可。
調色板
可在上參考相關的CSS配色方案。
常用工具
數據可視化的工具很多,也有不多人已經總結過,這里就大致提一下。
R最擅長的除了統計建模就是可視化了,而是最流行、最強大的繪圖包(應該沒有之一)。對于靜態圖,只要你有足夠的創意,基本都可以通過其系統完備的畫圖語法實現。而R中也有相關的包可以把圖形變成交互式,彌補了本身不能交互的弱點。
d3.js
d3.js個很強大的庫,許多先進、前衛的圖形在上面都有demo,它可以在較底層以較高的自由度畫圖并配置交互效果。但是它的學習曲線很陡,坑也較多。
在江湖上被稱為”百度為數不多的良心產品“,這個庫跟d3相反,它離應用層更近,提供了許多示例模板,把代碼copy過去改改數據就行了。所以的優點是上手容易、圖表漂亮、交互式效果也很好,缺點是自由度低,一旦你有個創意沒提供對應的模板,那就沒辦法了。
Excel
隨著Excel的發展,它的圖表也越來越豐富美觀,很容易上手,仍然是把數據往模板里套的方式。
PS & AI
這兩個是設計師的工具,但是出了一張可視化的圖之后往往需要進一步修繕,這就是設計師的工作了。可以生成一張pdf矢量圖,然后導入PS或AI中,這樣對每一個元素操作都很方便。
DataV
最后友情幫助阿里打個廣告。DataV很適合做大屏可視化展示,效果很炫酷,而且模板越來越成熟,上手難度也越來越低,同時價格也不貴。
DataV做的大屏展示
思考一個問題:數據可視化到底是否需要編程?對于大數據量、自由度要求較高、創意設計強的可視化應當要編程(特別是前端編程),但是對于日常小規模、簡化、通用的可視化,用工具即可。
而且隨著數據可視化技術的發展,它的門檻一定是越來越低,越來越不需要編程也能做出很好的可視化效果。
應用場景大屏展示
這種情況一般是企業級的數據可視化應用,一般是領導向客戶展示介紹產品和業務時所用,所以它的難度和工作量也最高。大屏展示要求大氣、炫酷、交互性強。