數據可視化是關於數據之視覺表現形式的研究;其中,這種數據的視覺表現形式被定義爲一種以某種概要形式抽提出來的信息,包括相應信息單位的各類屬性和變量(簡單來講,數據可視化就是用圖形的方式來表徵數據的規律。)前端
散點圖用來表徵兩個(若是多個就分面,如上圖)數值型變量間的關係,每一個點的位置(即x軸和y軸座標)映射着兩個變量的值。固然對於三個數值型變量,也有三維散點圖,不過用得很少。
經過觀察散點圖上數據點的分佈狀況,咱們能夠推斷出變量間的相關性。若是變量之間不存在相互關係,那麼在散點圖上就會表現爲隨機分佈的離散的點,若是存在某種相關性,那麼大部分的數據點就會相對密集並以某種趨勢呈現。數據的相關關係主要分爲:正相關(兩個變量值同時增加)、負相關(一個變量值增長另外一個變量值降低)、不相關、線性相關、指數相關等,表如今散點圖上的大體分佈以下圖所示。那些離點集羣較遠的點咱們稱爲離羣點或者異常點。 編程
在散點圖的基礎上加一個維度,把各個點的面積大小映射一個新的變量,這樣不只點的位置還有大小表示數據特徵。 服務器
把散點圖各個散點用折線鏈接起來就成了折線圖,固然不只僅只是爲了好看,當散點越多,折線就越平滑地趨近於曲線,能更加貼切地反映連續型變量的規律。 網絡
把折線圖進一步往座標軸投影就成了面積圖,本質其實跟折線圖沒區別,只是看起來更加飽滿一點。 數據結構
柱狀圖是一種用得很普遍的圖形,它表徵分類型變量 vs 數值型變量的關係。若是分類型變量的每個取值還能繼續分類,那麼簡單的柱狀圖就變成了複雜的柱狀圖,每個類別僅由一根柱變成多根柱,多根柱能夠串列,也能夠並列。 值得一提的是,柱狀圖通常須要排序:若是分類型變量是有序的,按照它自己的順序排列便可;若是分類型變量無序,那麼則根據數值型變量的大小進行排序,使柱狀圖的高度單調變化。 app
只不過把柱狀圖座標旋轉一下,豎着的變成橫着的,這個可根據版面自由選擇。上圖示例就是串列的堆疊條形圖。 echarts
本質仍是柱狀圖,只不過把直角座標系映射成極座標系。看起來比柱狀圖更美觀。 工具
瀑布圖是柱狀圖的一種延伸,它通常表示某個指標隨時間的漲跌規律,每個柱狀也不都是從0開始的,而是從前一個柱狀的終點位置開始,這樣既反映了每個時刻的漲跌狀況,也反映了數值指標在每個時刻的值。 學習
餅圖的本質還是柱狀圖,只不過餅圖通常用來表示各個類別的比例,而不是絕對的數值,用角度來映射大小。 值得一提的是,由於一個圓餅只有360度,若是類別太多了,這個餅會被切割得很是細,不利於閱讀;這種狀況下老老實實地用柱狀圖。 大數據
本質就是餅圖,只不過把實心圓換成了空心的圓環;若是清一色的餅圖太過單調,能夠考慮換個環形圖。
馬賽克圖比較複雜,與柱狀圖相比,它的分類變量就多了幾個,並且還能實現交叉映射,因此比柱狀圖更抽象,更細化。 馬賽克圖隱含着大量的數據信息。例如:(1)從船員到頭等艙,存活率陡然提升;(2)大部分孩子都處在三等艙和二等艙中;(3)在頭等艙中的大部分女性都存活了下來,而三等艙中僅有一半女性存活;(4)船員中女性不多,致使該組的Survived標籤重疊(圖底部的No和Yes)。 擴展的馬賽克圖添加了顏色和陰影來表示擬合模型的殘差值。在本例中,藍色陰影代表,在假定生存率與船艙等級、性別和年齡層無關的條件下,該類別下的生存率一般超過預期值。紅色陰影則含義相反。必定要運行該例子的代碼,這樣你能夠真實感覺下着色圖形的效果。圖形代表,在模型的獨立條件下,頭等艙女性存活數和男性船員死亡數超過模型預期值。若是存活數與船艙等級、性別和年齡層獨立,三等艙男性的存活數比模型預期值低。
看起來跟餅圖比較像,但比餅圖更復雜得多。它從中心向外輻射,每輻射一層就細分一層,用來表示多個變量多層之間的比例關係。
看起來跟柱狀圖很像,但其實本質並不同。直方圖用來表徵一個數值型變量的分佈,具體來講就是把這個連續型變量劃分紅多個區間,而後統計各個區間的頻數。直方圖橫軸是數值型變量自己的值,縱軸是頻數。
本質與直方圖相似,不過縱軸不是頻數而是頻率。正如折線圖和麪積圖同樣,機率密度曲線圖也可自由選擇要不要面積投影。這個圖太學術了,通常出如今數學教材中(好比正態分佈……)。
不少遊戲中的人物能力極向對比就是以雷達圖表示的。柱狀圖通常是一個分類型變量不一樣類別間的比較,雷達圖能夠是多個數值不在同一個scale之下;更具體地說,柱狀圖通常是橫向比較,雷達圖既能夠多個觀測之間的縱向比較,也能夠是一個觀測在不一樣變量間的橫向比較。 值得一提的是,雷達圖若是用來橫向比較,需先把各個數值變量做歸一化處理。
亦稱盒須圖,也是挺學術的一個圖。它用來表徵各個數值型變量的分佈情況,每一條橫線表明分位數,盒內部的橫線表明中位數,點表明異常值。
本質與直方圖同樣,都是表徵數值型變量的分佈,每個小提琴的寬度表明它在該高度處的頻率範圍。
通常以顏色來映射密度或者其餘數值變量,通常來講,顏色最深的地方表示數據最集中。
是熱力圖的變種,它把每個矩形從新排列成日曆的形狀,這樣能夠方便地觀察一段時間內每一天的數值特徵。
用來可視化地理數據,這些數據通常由國家地理測繪部門提供,在一些網站上也能找到,經常使用的數據格式有shp、JSON、csv等。 地圖的繪製原理是基於大量的散點,勾勒成曲線,再鏈接成多邊形——其中每一塊多代形表明一個地區,能夠是國家、省、市、區縣等。 地圖的應用主兩有種狀況:一是如上圖同樣以顏色填充每個多邊形來映射一個指標,這種狀況下地圖跟柱狀圖本質相同,可是多了多邊形之間的位置關係;另外一種是在地圖上疊加散點或者曲線,來表徵各個點之間的地理位置。
地圖是二維的,三維的就是地球圖。這種圖形通常是交互的,也就是說你能夠用鼠標實現地球的旋轉和縮放等操做。 值得一提的是,不要僅僅爲了3D就使用地球圖,要看數據自己的狀況。若是你的數據範圍原本就覆蓋全球,用地球圖很合適;但若是你的數據範圍小,就一個國內,甚至一個省市內的,搞個地球圖就太浮誇,並且整個球上只有一個很是小的區域有數據,是很不和諧的。
網絡圖的元素包含點和邊,邊分爲無向邊、單向邊和雙向邊來表徵點與點的鏈接關係,邊的粗細能夠映射這種關係的強弱。
arc diagram也是一種網絡圖,只不過它把全部的節點一字排開,以弧線來表示邊。這樣看起來藝術感更強,適合於節點較多的網絡關係可視化。
和絃圖通常用來表示雙向的網絡關係(好比AB兩個城市相互流入流出了多少人),數據結構通常爲鄰接矩陣。當節點不少的時候,各類弧線交叉得就很是密密麻麻,這種狀況下,要麼交互,要麼考慮別的圖形。
hierarchical edge bundling也表示節點間的網絡關係,不過它把邊扭曲成曲線,這樣就適合節點比較多的可視化。
矩形樹圖本質就是決策樹的可視化,只不過排成矩形。它也是把各個變量層層細分,這一點跟sunburst圖相似。當變量比較多的時候,作成交互可縮放的形式更合適。
平行座標圖的優勢是能夠把多個變量並形排開,把每個記錄都以折線鏈接上。這樣當數據量大的時候,其實能夠很方便地觀察各個變量的分佈狀況。
桑基圖看起來跟平行座標圖有點像,但含義不同。桑基圖主要的用法是表徵流量在各個層級的流動關係,上一層如何向下一層分散,下一層如何由下一層匯聚。
互聯網運營有一個很重要的概念就是層級轉化,這個每層的轉化率用漏斗圖來可視化,形神俱佳。若是兩層之間的寬度近似,表徵該層的轉化率高;若是兩層之間的寬度一會兒減少了不少,表示轉化率低。
儀表盤的觀賞性大於實用性,實際上它的功能很簡單,就是表徵一個數值型變量在最小值和最大值之間的什麼分位。
象柱形圖其實就是柱形圖,只不過把柱子換成了其它的圖形。若是數據自己有比較具體、形象的含義和背景,那麼用象柱形圖是一種比較新穎的選擇。
主題河流圖好看,但很差解釋,若是不是交互式的,最好不要用。它通常是把多個類別隨時間的變化數據堆疊起來,表徵隨時間變化的趨勢。
詞雲圖便是對詞彙的頻數進行可視化,一個詞越大它出現的次數就越多,通常與文本挖掘配合使用。 在實際的數據可視化中,每每不是孤立地用一個基本圖形,把多個圖形組合、鄰接,能交叉對比出更多的信息。好比在柱狀圖上疊加折線圖,在地圖上疊加散點圖,把多個柱狀圖放在一塊兒對比等等。 記住數據可視化展示信息是第一位的,好看卻是其次。
交互性是數據可視化與信息圖的區別。
什麼是交互,就是用戶輸入一個信號,可視化系統能給出響應,以幫助他更好地理解可視化。數據可視化的本質是以簡單、直接的圖形幫助讀者更容易理解數據背後的規律,但許多可視化圖形作得太複雜了,反而不利於解讀,這個時候交互就能比較有效地解決這個問題。
R最擅長的除了統計建模就是可視化了,而ggplot2是最流行、最強大的繪圖包(應該沒有之一)。對於靜態圖,只要你有足夠的創意,ggplot2基本均可以經過其系統完備的畫圖語法實現。而R中也有相關的包能夠把ggplo2圖形變成交互式,彌補了ggplot2自己不能交互的弱點。
d3.js個很強大的庫,許多先進、前衛的圖形在上面都有demo,它能夠在較底層以較高的自由度畫圖並配置交互效果。可是它的學習曲線很陡,坑也較多。
echarts在江湖上被稱爲」百度爲數很少的良心產品「,這個庫跟d3相反,它離應用層更近,提供了許多示例模板,把代碼copy過去改改數據就好了。因此echarts的優勢是上手容易、圖表漂亮、交互式效果也很好,缺點是自由度低,一旦你有個創意echarts沒提供對應的模板,那就沒辦法了。
隨着Excel的發展,它的圖表也愈來愈豐富美觀,很容易上手,仍然是把數據往模板裏套的方式。
這兩個是設計師的工具,可是出了一張可視化的圖以後每每須要進一步修繕,這就是設計師的工做了。能夠生成一張pdf矢量圖,而後導入PS或AI中,這樣對每個元素操做都很方便。
DataV很適合作大屏可視化展現,效果很炫酷,並且模板愈來愈成熟,上手難度也愈來愈低,同時價格也不貴。 DataV作的大屏展現
思考一個問題:數據可視化究竟是否須要編程?這種狀況通常是企業級的數據可視化應用,通常是領導向客戶展現介紹產品和業務時所用,因此它的難度和工做量也最高。大屏展現要求大氣、炫酷、交互性強。
好比用R中的shiny快速搭建一個可視化原型,而後在公司內部搭建一個內網服務器部署上去,內部同事均可以交互使用,很方便地瞭解產品原型及數據規律。這種狀況下沒必要太花哨,可是要具體、清晰,還有要必定的交互性。
這個是放在報告中或者PPT中展現給別人看的,因此靜態圖表就行,這個難度最低。報告中的圖表要求簡潔、清晰、易於解讀。