在日常工作中,越來(lái)越多的行業(yè)傾向大數(shù)據(jù)分析,大數(shù)據(jù)的興起,也為日常工作帶來(lái)了眾多便利。那么常見的數(shù)據(jù)有哪些展現(xiàn)方式呢,以及有哪些語(yǔ)言可以實(shí)現(xiàn)數(shù)據(jù)可視化?
常見的數(shù)據(jù)可視化方式有:
條形圖和柱狀圖
使用場(chǎng)景:柱狀圖一般用于表現(xiàn)分類的變量或者是連續(xù)的分類變量的組合。
柱狀圖是最常見的圖表,也最容易解讀。
它的適用場(chǎng)合是二維數(shù)據(jù)集(每個(gè)數(shù)據(jù)點(diǎn)包括兩個(gè)值x和y),但只有一個(gè)維度需要比較。年銷售額就是二維數(shù)據(jù),"年份"和"銷售額"就是它的兩個(gè)維度,但只需要比較"銷售額"這一個(gè)維度。
柱狀圖利用柱子的高度,反映數(shù)據(jù)的差異。肉眼對(duì)高度差異很敏感,辨識(shí)效果非常好。柱狀圖的局限在于只適用中小規(guī)模的數(shù)據(jù)集。
通常來(lái)說(shuō),柱狀圖的X軸是時(shí)間維,用戶習(xí)慣性認(rèn)為存在時(shí)間趨勢(shì)。如果遇到X軸不是時(shí)間維的情況,建議用顏色區(qū)分每根柱子,改變用戶對(duì)時(shí)間趨勢(shì)的關(guān)注。
折線圖
使用場(chǎng)景:折線圖適合二維的大數(shù)據(jù)集,尤其是那些趨勢(shì)比單個(gè)數(shù)據(jù)點(diǎn)更重要的場(chǎng)合。
折線圖是排列在工作表的列或行中的數(shù)據(jù)可以繪制到折線圖中。折線圖可以顯示隨時(shí)間(根據(jù)常用比例設(shè)置)而變化的連續(xù)數(shù)據(jù),因此非常適用于顯示在相等時(shí)間間隔下數(shù)據(jù)的趨勢(shì)。
在折線圖中,類別數(shù)據(jù)沿水平軸均勻分布,所有值數(shù)據(jù)沿垂直軸均勻分布。
餅圖
餅圖是一種應(yīng)該避免使用的圖表,因?yàn)槿庋蹖?duì)面積大小不敏感。但在具體反映某個(gè)比重的時(shí)候,配上具體數(shù)值,會(huì)有較好的效果。
餅圖廣泛得應(yīng)用在各個(gè)領(lǐng)域,用于表示不同分類的占比情況,通過(guò)弧度大小來(lái)對(duì)比各種分類。餅圖通過(guò)將一個(gè)圓餅按照分類的占比劃分成多個(gè)區(qū)塊,整個(gè)圓餅代表數(shù)據(jù)的總量,每個(gè)區(qū)塊(圓弧)表示該分類占總體的比例大小,所有區(qū)塊(圓弧)的加和等于 100%。
散點(diǎn)圖
使用場(chǎng)景:散點(diǎn)圖通常用于分析兩個(gè)連續(xù)變量之間的關(guān)系。適用于三維數(shù)據(jù)集,但其中只有兩維需要比較。
散點(diǎn)圖也叫 X-Y 圖,它將所有的數(shù)據(jù)以點(diǎn)的形式展現(xiàn)在直角坐標(biāo)系上,以顯示變量之間的相互影響程度,點(diǎn)的位置由變量的數(shù)值決定。
氣泡圖
氣泡圖是散點(diǎn)圖的一種衍生,通過(guò)每個(gè)點(diǎn)的面積大小,反映第三維。
排列在工作表的列中的數(shù)據(jù)(第一列中列出 x 值,在相鄰列中列出相應(yīng)的 y 值和氣泡大小的值)可以繪制在氣泡圖中。氣泡圖與散點(diǎn)圖相似,不同之處在于:氣泡圖允許在圖表中額外加入一個(gè)表示大小的變量進(jìn)行對(duì)比。
雷達(dá)圖
雷達(dá)圖適用于多維數(shù)據(jù)(四維以上),且每個(gè)維度必須可以排序。數(shù)據(jù)點(diǎn)一般6個(gè)左右,太多的話辨別起來(lái)有困難。
雷達(dá)圖(Radar Chart),又可稱為戴布拉圖、蜘蛛網(wǎng)圖(Spider Chart),是財(cái)務(wù)分析報(bào)表的一種。即將一個(gè)公司的各項(xiàng)財(cái)務(wù)分析所得的數(shù)字或比率,就其比較重要的項(xiàng)目集中劃在一個(gè)圓形的圖表上,來(lái)表現(xiàn)一個(gè)公司各項(xiàng)財(cái)務(wù)比率的情況,使用者能一目了然的了解公司各項(xiàng)財(cái)務(wù)指標(biāo)的變動(dòng)情形及其好壞趨向。
數(shù)據(jù)可視化并非是一門簡(jiǎn)單的學(xué)科,它的實(shí)現(xiàn)方式是由編程語(yǔ)言根據(jù)規(guī)則實(shí)現(xiàn)的。下面是一些需要編程性語(yǔ)言的工具。
工具——編程語(yǔ)言
R
R 經(jīng)常被稱為是“統(tǒng)計(jì)人員為統(tǒng)計(jì)人員開發(fā)的一種語(yǔ)言”。如果你需要深?yuàn)W的統(tǒng)計(jì)模型用于計(jì)算,可能會(huì)在 CRAN 上找到它――你知道,CRAN 叫綜合R檔案網(wǎng)絡(luò)(Comprehensive R Archive Network)并非無(wú)緣無(wú)故。說(shuō)到用于分析和標(biāo)繪,沒(méi)有什么比得過(guò) ggplot2。而如果你想利用比你機(jī)器提供的功能還強(qiáng)大的功能,那可以使用 SparkR 綁定,在 R 上運(yùn)行 Spark。
Scala
Scala 是最輕松的語(yǔ)言,因?yàn)榇蠹叶夹蕾p其類型系統(tǒng)。Scala在JVM上運(yùn)行,基本上成功地結(jié)合了函數(shù)范式和面向?qū)ο蠓妒剑壳八诮鹑诮绾托枰幚砗A繑?shù)據(jù)的公司企業(yè)中取得了巨大進(jìn)展,常常采用一種大規(guī)模分布式方式來(lái)處理(比如Twitter和LinkedIn)。它還是驅(qū)動(dòng)Spark和Kafka的一種語(yǔ)言。
Python
Python 在學(xué)術(shù)界當(dāng)中一直很流行,尤其是在自然語(yǔ)言處理(NLP)等領(lǐng)域。因而,如果你有一個(gè)需要 NLP 處理的項(xiàng)目,就會(huì)面臨數(shù)量多得讓人眼花繚亂的選擇,包括經(jīng)典的 NTLK、使用 GenSim 的主題建模,或者超快、準(zhǔn)確的 spaCy。同樣,說(shuō)到神經(jīng)網(wǎng)絡(luò),Python 同樣游刃有余,有 Theano 和 Tensorflow;隨后還有面向機(jī)器學(xué)習(xí)的 scikit-learn,以及面向數(shù)據(jù)分析的 NumPy 和 Pandas。
Java
Java 可能很適合大數(shù)據(jù)項(xiàng)目。想一想 hadoop MapReduce,它用 Java 編寫。HDFS 呢?也用 Java 來(lái)編寫。連 Storm、Kafka 和 Spark 都可以在 JVM 上運(yùn)行(使用 Clojure 和 Scala),這意味著 Java 是這些項(xiàng)目中的“一等公民”。另外還有像 Google Cloud Dataflow(現(xiàn)在是 Apache Beam)這些新技術(shù),直到最近它們還只支持 Java。