一文看懂數據可視化:從編程工具到可視化表現方式

定義


數據可視化的目的其實就是直觀地展現數據,例如讓花費數小時甚至更久才能歸納的數據量,轉化成一眼就能讀懂的指標;通過加減乘除、各類公式權衡計算得到的兩組數據差異,在圖中顏色敏感、長短大小即能形成對比;數據可視化是一個溝通復雜信息的強大武器。通過可視化信息,我們的大腦能夠更好地抓取和保存有效信息,增加信息的印象。但如果數據可視化做的較弱,反而會帶來負面效果;錯誤的表達往往會損害數據的傳播,完全曲解和誤導用戶,所以更需要我們多維的展現數據,就不僅僅是單一層面。

背景


不妨想一想,其實在大數據沒有出現之前,已經有很多對數據加以可視化的經典應用,比如股市里的 K 線了,其試圖以可視化的目的來發現某些規律,信息可以用多種方法來進行可視化,每種可視化的方法都有著不同的著重點,特別是在大數據時代,當你打算處理數據時。首先要明確并理解的一點是:你打算通過數據向你的用戶講述怎樣的故事,數據可視化之后又在表達著什么?

通過這些數據,能為你后續的工作做哪些指導性工作,是否能幫觀者正確的抓住重點,了解行業動態?了解這些之后,便能選擇合理的數據可視化方法,高效傳達數據。

當我們能夠充分理解數據,并能夠輕易向他人解釋數據時,數據才有所價值;我們的讀者可以通過可視化互動或其他數據使用方式來探尋一個故事的背后發生了什么,因此,數據可視化至關重要。


數據的特性


數據可視化,先要理解數據,再去掌握可視化的方法,這樣才能實現高效的數據可視化,下面是常見的數據類型,在設計時,你可能會遇到以下集中數據類型:

量性:數據是可以計量的,所有的值都是數字

離散型:數字類數據可能在有限范圍內取值。例如:辦公室內員工的數目

持續性:數據可以測量,且在有限范圍內,例如:年度降水量

范圍性:數據可以根據編組和分類而分類,例如:產量銷售量

可視化的意義是幫助人更好的分析數據,也就是說他是一種高效的手段,并不是數據分析的必要條件;如果我們采用了可視化方案,意味著機器并不能精確的分析。當然,也要明確可視化不能直接帶來結果,它需要人來介入來分析結論。

在大數據時代,可視化圖表工具不可能“單獨作戰”,而我們都知道大數據的價值在于數據挖掘,一般數據可視化都是和數據分析功能組合,數據分析又需要數據接入整合、數據處理、ETL等數據功能,發展成為一站式的大數據分析平臺。


工具——編程語言


R

R 經常被稱為是“統計人員為統計人員開發的一種語言”。如果你需要深奧的統計模型用于計算,可能會在 CRAN 上找到它――你知道,CRAN 叫綜合R檔案網絡(Comprehensive R Archive Network)并非無緣無故。說到用于分析和標繪,沒有什么比得過 ggplot2。而如果你想利用比你機器提供的功能還強大的功能,那可以使用 SparkR 綁定,在 R 上運行 Spark。

Scala

Scala 是最輕松的語言,因為大家都欣賞其類型系統。Scala在JVM上運行,基本上成功地結合了函數范式和面向對象范式,目前它在金融界和需要處理海量數據的公司企業中取得了巨大進展,常常采用一種大規模分布式方式來處理(比如Twitter和LinkedIn)。它還是驅動Spark和Kafka的一種語言。

Python

Python 在學術界當中一直很流行,尤其是在自然語言處理(NLP)等領域。因而,如果你有一個需要 NLP 處理的項目,就會面臨數量多得讓人眼花繚亂的選擇,包括經典的 NTLK、使用 GenSim 的主題建模,或者超快、準確的 spaCy。同樣,說到神經網絡,Python 同樣游刃有余,有 Theano 和 Tensorflow;隨后還有面向機器學習的 scikit-learn,以及面向數據分析的 NumPy 和 Pandas。

Java

Java 可能很適合你的大數據項目。想一想 Hadoop MapReduce,它用 Java 編寫。HDFS 呢?也用 Java 來編寫。連 Storm、Kafka 和 Spark 都可以在 JVM 上運行(使用 Clojure 和 Scala),這意味著 Java 是這些項目中的“一等公民”。另外還有像 Google Cloud Dataflow(現在是 Apache Beam)這些新技術,直到最近它們還只支持 Java。


可視化圖表


比較類

比較類顯示值與值之間的不同和相似之處。 使用圖形的長度、寬度、位置、面積、角度和顏色來比較數值的大小, 通常用于展示不同分類間的數值對比,不同時間點的數據對比。

柱形圖

柱狀圖有別于直方圖,柱狀圖無法顯示數據在一個區間內的連續變化趨勢。柱狀圖描述的是分類數據,回答的是每一個分類中“有多少?”這個問題。 需要注意的是,當柱狀圖顯示的分類很多時會導致分類名層疊等顯示問題。

1、適合的數據:一個分類數據字段、一個連續數據字段

2、功能:對比分類數據的數值大小

3、數據與圖形的映射:分類數據字段映射到橫軸的位置

4、連續數據字段映射到矩形的高度

5、分類數據也可以設置顏色增強分類的區分度

6、適合的數據條數:不超過 12 條數據

分布類

分布類顯示頻率,數據分散在一個區間或分組。 使用圖形的位置、大小、顏色的漸變程度來表現數據的分布, 通常用于展示連續數據上數值的分布情況。

散點圖

散點圖也叫 X-Y 圖,它將所有的數據以點的形式展現在直角坐標系上,以顯示變量之間的相互影響程度,點的位置由變量的數值決定。

通過觀察散點圖上數據點的分布情況,我們可以推斷出變量間的相關性。如果變量之間不存在相互關系,那么在散點圖上就會表現為隨機分布的離散的點,如果存在某種相關性,那么大部分的數據點就會相對密集并以某種趨勢呈現。數據的相關關系主要分為:正相關(兩個變量值同時增長)、負相關(一個變量值增加另一個變量值下降)、不相關、線性相關、指數相關等,表現在散點圖上的大致分布如下圖所示。那些離點集群較遠的點我們稱為離群點或者異常點。

1、適合的數據:兩個連續數據字段

2、功能:觀察數據的分布情況

3、數據與圖形的映射:兩個連續字段分別映射到橫軸和縱軸。

4、適合的數據條數:無限制

5、備注:可更具實際情況對點的形狀進行分類字段的映射。

6、點的顏色進行分類或連續字段的映射。

流程類

流程類顯示流程流轉和流程流量。 一般流程都會呈現出多個環節,每個環節之間會有相應的流量關系,這類圖形可以很好的表示這些關系。

漏斗圖

漏斗圖適用于業務流程比較規范、周期長、環節多的單流程單向分析,通過漏斗各環節業務數據的比較能夠直觀地發現和說明問題所在的環節,進而做出決策。漏斗圖用梯形面積表示某個環節業務量與上一個環節之間的差異。漏斗圖從上到下,有邏輯上的順序關系,表現了隨著業務流程的推進業務目標完成的情況。

漏斗圖總是開始于一個100%的數量,結束于一個較小的數量。在開始和結束之間由N個流程環節組成。每個環節用一個梯形來表示,梯形的上底寬度表示當前環節的輸入情況,梯形的下底寬度表示當前環節的輸出情況,上底與下底之間的差值形象的表現了在當前環節業務量的減小量,當前梯形邊的斜率表現了當前環節的減小率。 通過給不同的環節標以不同的顏色,可以幫助用戶更好的區分各個環節之間的差異。漏斗圖的所有環節的流量都應該使用同一個度量。

1、圖表類型:漏斗圖

2、適合的數據:一個分類數據字段、一個連續數據字段

3、功能:對比分類數據的數值大小

4、數據與圖形的映射:分類數據字段映射到顏色

5、連續數據字段映射到梯形的面積

6、適合的數據條數:不超過12條數據

占比類

占比類顯示同一維度上占比關系。

餅圖

餅圖廣泛得應用在各個領域,用于表示不同分類的占比情況,通過弧度大小來對比各種分類。餅圖通過將一個圓餅按照分類的占比劃分成多個區塊,整個圓餅代表數據的總量,每個區塊(圓弧)表示該分類占總體的比例大小,所有區塊(圓弧)的加和等于 100%。

1、適合的數據:列表:一個分類數據字段、一個連續數據字段

2、功能 對比分類數據的數值大小

3、數據與圖形的映射:分類數據字段映射到扇形的顏色

4、連續數據字段映射到扇形的面積

5、適合的數據條數:不超過 9 條數據

區間類

區間類顯示同一維度上值的上限和下限之間的差異。 使用圖形的大小和位置表示數值的上限和下限,通常用于表示數據在某一個分類(時間點)上的最大值和最小值。

儀表盤

儀表盤(Gauge)是一種擬物化的圖表,刻度表示度量,指針表示維度,指針角度表示數值。儀表盤圖表就像汽車的速度表一樣,有一個圓形的表盤及相應的刻度,有一個指針指向當前數值。目前很多的管理報表或報告上都是用這種圖表,以直觀的表現出某個指標的進度或實際情況。

儀表盤的好處在于它能跟人們的常識結合,使大家馬上能理解看什么、怎么看。擬物化的方式使圖標變得更友好更人性化,正確使用可以提升用戶體驗。

1、適合的數據:一個分類字段,一個連續字段

2、功能 對比分類字段對應的數值大小

3、數據與圖形的映射:指針映射到分類字段,指針的角度映射連續字段

4、適合的數據條數:小于等于3

關聯類

關聯類顯示數據之間相互關系。 使用圖形的嵌套和位置表示數據之間的關系,通常用于表示數據之間的前后順序、父子關系以及相關性。

矩形樹圖

矩形樹圖由馬里蘭大學教授 Ben Shneiderman 于上個世紀90年代提出,起初是為了找到一種有效了解磁盤空間使用情況的方法。 矩形樹圖適合展現具有層級關系的數據,能夠直觀體現同級之間的比較。一個Tree狀結構轉化為平面空間矩形的狀態,就像一張地圖,指引我們發現探索數據背后的故事。

1、適合的數據:帶權的樹形數據

2、功能 表示樹形數據的樹形關系,及各個分類的占比關系

3、數據與圖形的映射:樹形關系映射到位置,占比數值數據映射到大小。設置顏色增強分類的區分度

4、適合的數據條數:大于5個分類

趨勢類

趨勢類分析數據的變化趨勢。 使用圖形的位置表現出數據在連續區域上的分布,通常展示數據在連續區域上的大小變化的規律。

折線圖

折線圖用于顯示數據在一個連續的時間間隔或者時間跨度上的變化,它的特點是反映事物隨時間或有序類別而變化的趨勢。

1、適合的數據:兩個連續字段數據,或者一個有序的分類一個連續數據字段

2、功能 觀察數據的變化趨勢

3、數據與圖形的映射:兩個連續字段分別映射到橫軸和縱軸

4、適合的數據條數:單條線的數據記錄數要大于2,但是同一個圖上不要超過5條折線

時間類

時間類顯示以時間為特定維度的數據。 使用圖形的位置表現出數據在時間上的分布,通常用于表現數據在時間維度上的趨勢和變化。

面積圖

面積圖又叫區域圖。 它是在折線圖的基礎之上形成的, 它將折線圖中折線與自變量坐標軸之間的區域使用顏色或者紋理填充,這樣一個填充區域我們叫做面積,顏色的填充可以更好的突出趨勢信息,需要注意的是顏色要帶有一定的透明度,透明度可以很好的幫助使用者觀察不同序列之間的重疊關系,沒有透明度的面積會導致不同序列之間相互遮蓋減少可以被觀察到的信息。

1、適合的數據:兩個連續字段數據

2、功能 觀察數據變化趨勢

3、數據與圖形的映射:兩個連續字段分別映射到橫軸和縱軸

4、適合的數據條數:大于兩條

地圖類

地圖類顯示地理區域上的數據。 使用地圖作為背景,通過圖形的位置來表現數據的地理位置, 通常來展示數據在不同地理區域上的分布情況。

帶氣泡的地圖

帶氣泡的地圖,其實就是氣泡圖和地圖的結合,我們以地圖為背景,在上面繪制氣泡。我們將圓(這里我們叫它氣泡)展示在一個指定的地理區域內,氣泡的面積代表了這個數據的大小。

1、適合的數據: 一個分類字段,一個連續字段

2、功能: 對比分類數據的數值大小

3、數據與圖形的映射: 一個分類字段映射到地圖的地理位置和氣泡顏色

4、另一個連續字段映射到氣泡大小

5、適合的數據條數:根據實際地理位置信息,無限制


用戶體驗


用戶視覺

合格的數據可視化是有新聞價值的。也就是說,它要能幫助目標觀眾更好地理解數據。有些數據可視化,只讓我們看到酷炫狂拽的圖形,或者密密麻麻的數據。這些就是過于看重藝術性和科學性,而忽略根本目的了。用信息研究的理論來說,數據看上去過于混亂和密集,用戶就會不由自主地「切斷數據的傳輸」。

色彩空間

人類對于顏色感知的方式通常包括三個問題:是什么顏色?深淺如何?明暗如何?在HSV色彩空間中,H 指色相 (Hue),S 指飽和度(Saturation),V 指明度(Value),在 HSL 色彩空間中,L 表示亮度(Lightness)。它們比 RGB 色彩空間更加直觀且符合人類對顏色的語言描述。在 1979 年的 ACM SIGGRAPH(美國計算機協會計算機圖形學專業組)年度會議上,計算機圖形學標準委員會推薦將HSL色彩空間用于顏色設計。

人群中存在一部分人具有視覺缺陷,包括色盲、色弱等。為了幫助他們識別圖表,可能需要采取一些特殊方法。

一個好的可視化工程師,必定也是一個好的 UX(用戶體驗),所以不光要以易讀性為目標努力,用戶們也要問問自己:這份可視化是給我看的嗎?我看的方式是否正確?

在數據可視化的工程中,你在分析中所采取的具體步驟會隨著數據集和項目的不同而不同,但在探索數據可視化和數據挖掘時,總體而言應考慮以下四點:

擁有什么數據?

關于數據你想了解什么?

應該使用哪種可視化方式?

你看見了什么,有意義嗎?

而去年我和我們廠的兩個同事聯合開發了可視化分析工具,還給業務人員舉行了一場比賽,順便在產品新版本發布前讓他(她)們幫我們測一下易用性,然而在比賽評比當晚,我有幸成為了評委,可惜參賽選手們解釋自己的作品時,有的云里霧里、有的激昂慷慨,很多都沒有說到點子上,甚至沒有充分利用到各個圖表類型的優勢,在這個滿世界談用戶體驗的時代,這場數據的“解說”顯然是糟糕的。

那么什么是優秀的可視化作品。我一直認為最好的用戶體驗是深入淺出,所以,優秀的可視化作品 = 信息 + 故事 + 目標 + 視覺形式,因此,一件可視化作品是從數據 -> 交互 -> 視覺 -> 開發的一個過程。

所以優秀的數據可視化依賴優異的設計,并非僅僅選擇正確的圖表模板那么簡單。全在于以一種更加有助于理解和引導的方式去表達信息,盡可能減輕用戶獲 取信息的成本。當然并非所有的圖表制作者都精于此道。所以我們看到的圖表表達中,各種讓人啼笑皆非的錯誤都有。


總結


定義合適的可視化圖形,可以說是最為關鍵的。一般情況來看,線柱餅等基本圖形可以完成我們大部分的需求,這也是分析人員最常用的展現形式;但對于大數據場景或具體業務場景下就需要更加特殊的可視化。

數據可視化工程師需要三方面的能力:數據分析能力、交互視覺能力、研發能力

? ? ? ? 不管用什么工具,別忘了你的目的是理解數據——這正是數據可視化工程師和軟件工程師的最大區別



來源:FSUX

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內容