李俊華
(哈爾濱廣廈學院 信息學院,黑龍江 哈爾濱 150025)
可視化是借助圖形化的方法,清晰有效的將數(shù)據(jù)展示出來。數(shù)據(jù)可視化的方法及工具有很多,例如少量數(shù)據(jù)較為常用的Excel,以及PowerPoint等均可實現(xiàn)數(shù)據(jù)的可視化。對于不斷發(fā)展的大數(shù)據(jù)的今天,Python的使用越來越受到關注。其豐富的第三方庫更是滿足了不同需求的應用[1]。本文簡單介紹可視化類型的選擇,以及介紹了幾款Python對于可視化的第三方庫及其應用場景,重點介紹pyecharts的使用,并通過pyecharts實現(xiàn)了幾款精美的可視化圖形實例,包括餅圖,柱狀圖,流動圖及熱力圖,為學習數(shù)據(jù)可視化的讀者提供參考[2]。
可視化是借助圖形化的方法,清晰有效地將數(shù)據(jù)展示出來。當有可視化需求時,首先要了解需求時什么,從而選擇合適的可視化圖形。比如,展示兩個維度的可視化圖形有很多,包括散點圖、折線圖、柱狀圖等等。根據(jù)需求的確定,從而選擇最合適的圖形可視化。例如,需求是查看“半年內的銷售情況”。由此需求可以確定這里會涉及兩個維度進行展示,一個維度是時間序列(半年即6個月),另一個維度是每個月的銷量。因此,從眾多兩個維度的可視化圖形中,選擇折線圖更為合適,因為其適合展示連續(xù)的時間序列數(shù)據(jù)。通過折線圖,可以清晰的觀察出銷量隨時間的變化情況[3]。
每一種可視化都有其適合的應用場合,需要在明確了想要展示的信息之后來合理地選擇可視化類型。這里簡單總結如下:
(1)想要展示數(shù)據(jù)的分布情況,可以選擇散點圖、箱型圖、柱狀圖和直方圖;(2)想要展示數(shù)據(jù)的變化趨勢,可以選擇折線圖和雙軸圖;(3)想要展示對比效果,可以選擇柱狀圖、餅圖和雷達圖;(4)想要展示數(shù)據(jù)的部分與整體的關系,可以選擇面積圖、餅圖、旭日圖、堆積柱狀圖和矩形樹圖;(5)想要展示數(shù)據(jù)之間的關系,可以選擇散點圖、氣泡圖和桑基圖;(6)想要展示文本信息的重點,可以選擇詞云圖;(7)想要展示流程中每一步的轉化情況,可以選擇漏斗圖。
除了選擇好合適的圖形之外,還要考慮可視化的配色及靜態(tài)或動態(tài)效果等,以此來更好的完成數(shù)據(jù)可視化。篇幅原因,這里不再贅述。
Python為數(shù)據(jù)可視化提供了很好的支持。Python強大的第三方庫更是為不同數(shù)據(jù)可視化需求及不同領域提供了支持。這里簡單介紹幾個不同領域的Python數(shù)據(jù)可視化庫。
Matplotlib是Python數(shù)據(jù)可視化庫的元老,已有十多年的歷史,使用范圍仍然很是廣泛。它的設計非常類似于MATLAB。
Seaborn是在Matplotlib之上構建的,其利用Matplotlib的強大功能,可以只用幾行代碼就可創(chuàng)建美觀的圖表。
ggplot基于ggplot2(一個R語言繪圖系統(tǒng)),它的運行方式與Matplotlib不同,它允許對其組件進行分層來創(chuàng)建完整的繪圖。例如,可以先從軸開始畫,然后再添加點,添加線、趨勢線等。
Bokeh基于The Grammer of Graphics,它的優(yōu)勢在于能夠創(chuàng)建交互式的網(wǎng)站圖,它可以很容易地輸出為JSON對象、HTML或交互式web應用程序。同時還支持流媒體和實時數(shù)據(jù)。
與Bokeh一樣,Plotly的強項在于制作交互式圖,但它提供了一些在大多數(shù)庫中沒有的圖表,如等高線圖,樹狀圖和3D圖表。
geoplotlib是一個用于創(chuàng)建地圖和繪制地理數(shù)據(jù)的工具庫??梢允褂盟鼇韯?chuàng)建各種地圖類型,例如等值線,熱圖和點密度貼圖[4]。
pyecharts是一個用于生成Echarts圖表的類庫。Echarts是百度開源的一個數(shù)據(jù)可視化JS庫,主要用于數(shù)據(jù)可視化。pyecharts實際上就是Echarts與Python的對接。使用pyecharts可以生成獨立的網(wǎng)頁,也可以在flask,Django中集成使用[5]。
pyecharts包含的圖表:Bar 、Bar3D、Boxplot、EffectScatter 、Funnel、Gauge、Geo、Graph、HeatMap、Kline、Line、Line3D、Liquid、Map、Parallel、Pie、Polar、Radar、Sankey、Scatter、Scatter3D 、ThemeRiver、WordCloud。
pyecharts與matplotlib優(yōu)缺點對比如下:
(1)優(yōu)點:matplotlib屬于靜態(tài)圖,沒有交互,pyecharts渲染效果更好;(2)缺點:不穩(wěn)定,pyecharts分為v0.5.X和v1兩個大版本,v0.5.X和v1間不兼容,v1是一個全新的版本,支持Python3.6以上版本。
3.2.1 下載與安裝
(1)pip命令
$ pip(3) install pyecharts(shell中直接命令)
(2)源碼安裝
$ git clone https://github.com/pyecharts/pyecharts.git
$ cd pyecharts
$ pip install -r requirements.txt
$ python setup.py install
# 或者執(zhí)行 python install.py
3.2.2 pyecharts基本使用
pyecharts的詳細配置API可參考官方幫助文檔。本文簡單介紹幾款圖表的效果實例如圖1~4所示。
圖1 精美餅圖示例
圖3 十一飛機流動圖
圖4 水果銷售熱力圖
通過對Python的數(shù)據(jù)可視化的簡要介紹和整理,包括可視化類型如何選擇,以及Python數(shù)據(jù)可視化的第三方庫的簡要介紹,并重點介紹了pyecharts庫,包括其下載與安裝,由于篇幅原因,只展示了利用pyecharts完成的四款常用圖形的實例。為學習數(shù)據(jù)可視的讀者提供參考。