- 數(shù)據(jù)可視化
- 蔣國銀等編著
- 3329字
- 2024-06-18 18:33:17
1.4 數(shù)據(jù)可視化的開發(fā)工具
1.4.1 常用工具
1.Excel
Microsoft Office是一套由微軟公司開發(fā)的辦公軟件套裝,它可以在Microsoft Windows、Windows Phone、Mac系列、iOS和Android等系統(tǒng)上運行。與其他辦公應(yīng)用程序一樣,它包括聯(lián)合的服務(wù)器和基于互聯(lián)網(wǎng)的服務(wù)。Excel是Microsoft Office系列中的一個軟件,專門用于電子表格制作與分析。Excel有直觀的界面,內(nèi)嵌出色的計算功能和圖表工具,是市場上較為流行的個人計算機數(shù)據(jù)處理軟件之一。
Excel擁有強大的函數(shù)庫,能快速創(chuàng)建各種數(shù)據(jù)圖(條形圖、餅圖、氣泡圖、折線圖、儀表盤圖以及編輯圖),是入門級的理想工具。但相比于專業(yè)圖形化軟件,Excel的圖形化功能并不算強大,調(diào)整圖表中的顏色、線條和樣式的范圍有限,十分難輸出較為專業(yè)的可視化圖表,尤其是多維圖形。
2.SPSS
SPSS(Statistical Product and Service Solutions)是一款統(tǒng)計產(chǎn)品與服務(wù)解決方案軟件,是由IBM公司推出的一系列用于統(tǒng)計分析運算、數(shù)據(jù)挖掘、預(yù)測分析和決策支持任務(wù)的軟件產(chǎn)品及相關(guān)服務(wù)的總稱,有Windows和mac OS X等版本。SPSS有專門的繪圖工具,可以根據(jù)數(shù)據(jù)繪制各種圖形[2]。
SPSS統(tǒng)計可視化圖形能夠簡潔、直觀地對主要的數(shù)據(jù)信息進行呈現(xiàn),反映事物內(nèi)在的規(guī)律和關(guān)聯(lián)。根據(jù)統(tǒng)計圖呈現(xiàn)變量的數(shù)量,可以將其分為單變量圖(直方圖、莖葉圖、箱圖、P-P圖、餅圖、條形圖、Pareto圖等)、雙變量圖(線圖、條形圖、馬賽克圖等)、多變量圖(三維散點圖等)。SPSS在常規(guī)圖中引入了更多的交互圖功能,例如:圖組(Paneled Charts),帶誤差線的分類圖形如誤差線條形圖和線圖;三維效果的簡單、堆積和分段餅圖等;也有人口金字塔和點密度圖等圖形。雖然SPSS擅長統(tǒng)計分析,也有較多圖表可視功能,但在輸出專業(yè)的可視圖表上也有一定的難度。
3.ECharts
ECharts(Enterprise Charts)是百度開發(fā)的一個開源的數(shù)據(jù)可視化工具,是一個基于JavaScript實現(xiàn)的開源可視化庫,提供直觀、生動、可交互、可個性化定制的數(shù)據(jù)可視化圖表。它可以流暢地運行在PC和移動設(shè)備上,兼容較多瀏覽器(IE、Chrome、Firefox、Safari等),底層依賴輕量級的矢量圖形庫(ZRender),提供拖拽重計算、數(shù)據(jù)視圖、值域漫游等功能,具有增強用戶體驗,提升數(shù)據(jù)挖掘、信息整合的能力。
ECharts提供常規(guī)的折線圖、柱形圖、散點圖、餅圖、K線圖,用于統(tǒng)計的盒形圖,用于地理數(shù)據(jù)可視化的地圖、熱力圖、線圖,用于關(guān)系數(shù)據(jù)可視化的關(guān)系圖、旭日圖,多維數(shù)據(jù)可視化的平行坐標,還有用于商務(wù)智能(Business Intelligence,BI)的漏斗圖或儀表盤,同時提供標題編輯、氣泡詳情、圖例、值域、數(shù)據(jù)區(qū)域、時間軸、工具箱等可交互組件,支持多圖表、組件的聯(lián)動和混搭展現(xiàn)[3]。
4.Tableau
Tableau幫助人們看到和理解數(shù)據(jù),該分析平臺正在改變?nèi)藗兪褂脭?shù)據(jù)解決問題的方式。Tableau獨創(chuàng)VizQL技術(shù),具有SQL查詢的綜合性功能,又兼顧業(yè)務(wù)人員的便捷易用需求,只需要拖曳,就能生成可視化圖形。Tableau在Tableau Desktop可視化工具的基礎(chǔ)上新增Tableau Prep Builder,彌補了敏捷數(shù)據(jù)整理的短板。Tableau已從可視化分析工具逐步發(fā)展成為企業(yè)級的數(shù)據(jù)可視化分析平臺。
Tableau定位數(shù)據(jù)可視化敏捷開發(fā)和實現(xiàn)的商務(wù)智能展現(xiàn)工具,具有以下核心優(yōu)勢:支持廣泛的部署選擇、豐富的交互渠道、模塊化的產(chǎn)品組合、不斷開放的開發(fā)接口等[13]。雖然Tableau入門容易,但較難精通掌握。
5.R語言
許多數(shù)據(jù)科學家使用R語言進行數(shù)據(jù)分析,R語言及其許多可用的包幾乎為可以想象到的每種情況提供了許多不同形式的可視化。R語言具有豐富的作圖功能,通過借助第三方包,比如graphics、gplot、ggplot2、lattice等可視化包,可以實現(xiàn)數(shù)據(jù)可視化功能。在使用R語言進行數(shù)據(jù)可視化之前,需要下載好各種可視化包,然后加載使用,調(diào)用可視化包里面的函數(shù)功能。
使用R語言進行數(shù)據(jù)可視化,雖要編程實現(xiàn),但比C++或JavaScript等許多語言都要簡單。因此,R語言并不太難學,但由于R語言最初是專門為統(tǒng)計學家和科學家設(shè)計的,因此入門門檻較高。
6.Python語言
和R語言一樣,Python語言以其大量的開放庫而聞名,有很多庫可以用于繪圖和可視化,如Matplotlib、Seaborn等。Python語言還擁有大量的機器學習庫,包括Scikit-learn、XGBoost、TensorFlow、Keras和PyTorch等。Python中的Pandas庫也可以兼容表格形式的數(shù)據(jù),利用Pandas庫處理CSV或Excel數(shù)據(jù)非常容易。除此之外,Python還有很優(yōu)秀的科學計算軟件包,比如Numpy庫可以幫助用戶瞬間完成復(fù)雜的數(shù)學計算,比如矩陣運算。所有這些包組合在一起,使Python語言成為專業(yè)級數(shù)據(jù)可視化的編程類流行工具。
Python語言的理念是強調(diào)代碼的可讀性和使編程變得簡單或簡潔,Python語言的設(shè)計者顯然做到了,因為這種語言非常容易學習。雖然Python語言的語法靈感來自C語言,但與C語言不同的是,它的實現(xiàn)并不復(fù)雜。因此,Python語言作為初學者的計算機編程語言學習首選,用戶可以在相對較短的時間內(nèi)學會它。
由于Python語言在數(shù)據(jù)可視化方面的專業(yè)性和易學易用性,本書選擇基于Python語言的可視化工具,詳細介紹如何用Python實現(xiàn)數(shù)據(jù)可視化。
1.4.2 Python的數(shù)據(jù)可視化庫
下面介紹幾種常用的Python數(shù)據(jù)可視化庫。
1.Matplotlib
Matplotlib是Python數(shù)據(jù)可視化庫中的泰斗,盡管它已有十多年的歷史,但仍然是Python社區(qū)中使用最廣泛的繪圖庫,通過Matplotlib可以很方便地繪制二維、三維圖表。但是在Matplotlib的使用過程中,也會受到圖標控制參數(shù)不統(tǒng)一的困擾,如plot()函數(shù)參數(shù)中顏色參數(shù)用color,而散點圖scatter()函數(shù)則用c[14]。
Matplotlib具有使用簡單繪圖語言實現(xiàn)復(fù)雜繪圖、以交互式操作實現(xiàn)精細繪圖、對圖表的組成元素進行精細化控制等主要特點[15]。雖然Matplotlib使用起來有些復(fù)雜,上手有一定難度,但是它具有強大的數(shù)據(jù)可視化功能,因此,后來陸續(xù)出現(xiàn)的很多第三方庫都是建立在Matplotlib庫的基礎(chǔ)上,有些甚至直接調(diào)取Matplotlib庫中的方法,例如Pandas庫、Seaborn庫[16]。
2.Seaborn
Seaborn與Matplotlib一樣,也是Python進行數(shù)據(jù)可視化的重要的第三方包。Seaborn是基于Matplotlib的圖形可視化包,它在Matplotlib的基礎(chǔ)上進行了更高級的API封裝,提供了一種高度交互式界面,從而使得作圖更加容易。我們用Seaborn能輕易做出各種有吸引力的統(tǒng)計圖表。
Seaborn在Matplotlib的基礎(chǔ)上,側(cè)重于數(shù)據(jù)統(tǒng)計分析圖表的繪制,包括帶誤差線的柱形圖和散點圖、箱體圖、小提琴圖、統(tǒng)計直方圖與核密度估計圖等。和Matplotlib繪圖相比,Seaborn利用Matplotlib的強大功能,有以下幾個優(yōu)勢:一是幾行代碼就能創(chuàng)建漂亮的圖表;二是Seaborn可以快速設(shè)定圖表顏色、主題和風格,以更美觀、更現(xiàn)代的調(diào)色板進行可視化設(shè)計;三是Seaborn有圖表分面展示[14]。
3.Bokeh
Bokeh是一個專門針對Web瀏覽器呈現(xiàn)功能的交互式可視化Python庫,支持現(xiàn)代化Web瀏覽器展示(圖表可以輸出為JSON對象、HTML文檔或者可交互的網(wǎng)絡(luò)應(yīng)用),這是Bokeh與其他可視化庫最核心的區(qū)別。Bokeh提供風格優(yōu)雅、簡潔的D3.js圖形化樣式,并將此功能擴展到高性能交互的數(shù)據(jù)集、數(shù)據(jù)流上。使用Bokeh可以快速便捷地創(chuàng)建交互式繪圖、儀表板和數(shù)據(jù)應(yīng)用程序等[4]。
Bokeh基于The Grammar of Graphics,源自原生Python,而不是從R語言移植過來的。它的優(yōu)勢在于能夠創(chuàng)建交互式網(wǎng)站圖,可以很容易地輸出為JSON對象、HTML頁面或交互式Web應(yīng)用程序[5]。其缺點是語法較復(fù)雜,不易上手。Bokeh提供三種不同的控制水平:最高級的控制管理水平可以幫助開發(fā)者快速地繪制常用圖形,比如直方圖、散點圖等;中等的控制管理水平,與Matplotlib庫原理相同,允許開發(fā)者控制圖像的基本元素信息;最低級的控制管理水平主要是針對高端的開發(fā)者,需要定義圖表中的每個元素[16]。
4.Plotly
Plotly是一個開源的、交互式和基于瀏覽器的Python圖形庫,可以創(chuàng)建在儀表板或網(wǎng)站上使用的交互式圖表(可以將它們保存為HTML文件或靜態(tài)圖像)。Plotly基于plotly.js,而plotly.js又基于D3.js,因此它是一個高級圖表庫。Plotly的優(yōu)勢在于制作交互式圖,包含了超過30多種圖表類型,提供了一些在大多數(shù)庫中沒有的圖表,如等高線圖、樹狀圖、科學圖表、3D圖表、金融圖表等。Plotly繪制的圖能直接在jupyter notebook中查看,也能保存為離線網(wǎng)頁,或者保存在http://plot.ly云端服務(wù)器內(nèi),以便在線查看[6]。雖然Plotly功能較多,但Plotly的部分功能需付費使用。
5.Pyecharts
Pyecharts是基于Echarts開發(fā)的,是一個用于生成Echarts圖表的類庫。Echarts是一個百度開源的數(shù)據(jù)可視化JS庫,憑借著良好的交互性、精巧的圖表設(shè)計,得到了眾多開發(fā)者的認可。更重要的是,該庫的文檔全部用中文撰寫。Pyecharts實際上就是Echarts與Python的對接。
Pyecharts有支持交互式展示與點擊、默認生成的樣式美觀、詳細的中文文檔與Demo、對中文開發(fā)者友好等特點。但Pyecharts不支持使用Pandas中的Series數(shù)據(jù),需要將其轉(zhuǎn)換為List數(shù)據(jù)才可以使用。
6.功能對比[7]
表1-1為Matplotlib、Seaborn、Bokeh、Plotly和Pyecharts在圖形輸出功能上的對比。
表1-1 Matplotlib、Seaborn、Bokeh、Plotly和Pyecharts的功能對比

注:〇表示支持不是很好;●表示支持較好;空白表示不支持。
由表1-1可以得出的結(jié)論是,Matplotlib可以制作基本圖表、3D和多子圖,但動畫功能有限;Seaborn是Matplotlib的封裝,功能比較有限,主要用于基本圖表;Bokeh的控件功能比較多,但在繪制3D和動畫圖時要裝插件;Pyecharts雖然動畫好看,但是控件無法定制;和其他4個庫相比,Plotly在功能上較為完善。
- 工業(yè)產(chǎn)品設(shè)計手繪實例教程(第3版)
- Go語言程序設(shè)計項目化教程(微課版)
- 嬰幼兒行為觀察與指導(dǎo)(慕課版)
- SolidWorks曲面設(shè)計實例精解(2017中文版)
- 預(yù)見風險:石油石化員工HSE風險預(yù)控與辨識手冊
- 食品檢測實驗室儀器設(shè)備管理指南
- 跨境電子商務(wù)基礎(chǔ)與實訓
- 音樂制作自學手冊:Cubase編曲案例分析與實戰(zhàn)教學(視頻版)
- 現(xiàn)代外科健康教育·神經(jīng)外科分冊
- 保安員
- 市場營銷基礎(chǔ)與實務(wù)(微課版·第2版)
- 汽車噴漆修復(fù)技術(shù)
- 電子商務(wù)基礎(chǔ)與實務(wù)(雙色 第2版)
- 智能網(wǎng)聯(lián)汽車智能座艙系統(tǒng)測試裝調(diào)(初級)
- 直播營銷與運營(微課版·第2版)