基於JS和matplotlib的可視化庫

基於JS的可視化庫

除了基於matplotlib的可視化庫之外,Python中有很多基於JS的可視化庫,其中比較流行的是:Bokeh,HoloViews,Plotly等。基於JS開發的可視化庫相對於matpltolib來說,其優勢之一是:交互可視化。

Bokeh和HoloViews是開源的交互式可視化庫,其目標都是期望繪製美觀的交互式圖形,而且針對大數據流進行優化,以使得數據分析和可視化能夠更加簡單。

Plotly是一個企業級分析工具,其提供了很多語言(比如MATLAB,Python,R等)的接口,可以直接嵌入到BI中。
在這裏插入圖片描述
Bokeh可視化效果
在這裏插入圖片描述
HoloViews可視化示例

上述給出的Bokeh和HoloViews示例均爲靜態圖形,可以前往查看官方示例,以更好的體驗基於JS帶來的交互式可視化效果。

HoloViews是PyViz的產品之一,此外還有一些其他產品,比如GeoViews,專門用來處理地理學數據的交互式可視化。

而且其提供了Bokeh,matplotlib和Datashader可視化庫的擴展。前往官網可以瞭解更多關於PyViz的介紹。
在這裏插入圖片描述
GeoViews可視化示例

除了上述可視化庫之外,Altair是類似Seaborn用於統計可視化的交互式Python可視化庫,其基於Vega和Vega-Lite(兩者非基於Python的可視化庫)。與Vega一樣,都是聲明式可視化工具。

在這裏插入圖片描述
Vega和Vega-Lite可視化

在這裏插入圖片描述
Altair可視化效果

此外,還有基於百度的Echarts構建的可視化庫—pyecharts,其對Echarts中的很多工具進行了封裝,也是進行交互式可視化的選擇之一。

上述交互式可視化庫主要應用在web端,或者嵌入到Jupyter notebook中。在使用jupyter notebook進行數據分析和可視化時,涉及到地理空間可視化時,可以使用gmaps將數據可視化到google地圖並嵌入到jupyter notebook中。

在這裏插入圖片描述
Jupyter notebook中gmaps示例

基於JS的可視化庫通常用於構建Web應用,當需要開發氣象數據可視化平臺時,可以使用基於JS的可視化庫。

如果是做氣象線下分析那麼可以使用基於matpltolib的可視化庫,而且matpltolib的繪圖質量達到了出版質量要求,對於寫論文或者報告來說能夠滿足要求。

如果生產環境中想要批量生產而且對速度有較高要求或者對圖形渲染有特別需求,可以嘗試一下其它繪圖庫,比如PyQtGraph。PyQtGraph是基於PyQt4/PySide和numpy的純Python圖形和GUI庫,主要應用於數學/科學/工程應用領域。

PyQtGraph支持2D/3D圖形繪製,而且還提供了一些高級特徵。此外,VisPy和Chaco同樣可以完成上述任務。更多信息可以前往各可視化庫官網查看。

基於 matplotlib 的可視化庫

Python可視化工具概覽

在互聯網時代,每時每刻都在產生大量的數據。而氣象領域更是一個“大數據”領域。除地面觀測站之外,在軌衛星每年也會產生PB級氣象數據,還有大量的數值模式數據。

面對氣象領域龐雜的數據集,想要直觀的表達信息,可視化可以說是最直接的表達方式之一。而且優秀的可視化可以起到事半功倍的效果。

2017年PyCon大會有一個演講專門介紹了Python中的可視化庫。Python中有很多優秀的可視化工具,大致可以分爲三類:

  • 基於 matplotlib 的可視化庫(比如seaborn等)
  • 基於JS的可視化庫(比如bokeh,plotly等)
  • matplotlib和JS結合的可視化庫

在這裏插入圖片描述
matplotlib是Python中一個低級可視化工具,其提供了兩種繪圖方式。其中一種類似MATLAB,通過調用函數直接繪圖。

這是matplotlib參考MATLAB對低級命令進行了封裝,提供了一套函數式繪圖接口。

函數式繪圖使得使用matplotlib繪圖更加方便,而且產生的圖達到了出版質量,但是同樣也存在一些缺點:

  • 調用細節被掩蓋,不便於理解matpltolib的底層操作
  • 繪圖處理速度低,尤其是在實時交互和圖形快速更新等方面

但是對於不需要利用matplotlib進行開發的使用者來說,無需理解matplotlib的底層操作。對於第二點,如果生產環境對效率要求較高,可以更換其他庫,或者在批量生產時採用多進程的方式來加快處理。

作爲Python中使用最廣泛的可視化工具之一,matplotlib可以繪製大多數常見的圖。官方也提供了大量的可視化示例。也可以看這裏:
如何用python畫圖——帶你入門matplotlib
如何用python畫圖–matplotlib實例與補充

但是matplotlib默認設置繪圖效果不是非常美觀,而且matpltolib在統計繪圖方面也不是很給力。而Seaborn則很好的解決了這個問題。

Seaborn基於matplotlib,提供了一些更美觀的配置選項,而且封裝了很多統計繪圖函數。所以如果你在做數據分析時,需要進行一些統計分析和可視化,Seaborn則是比較好的選擇。前方劇透!!後面會專門對Seaborn進行介紹~~
在這裏插入圖片描述
氣象作爲地球科學的分支,氣象數據涉及到時間和空間維度,在進行可視化時通常涉及到地理信息的處理。除了常規的折線,柱狀圖之外,空間分佈是進行氣象數據可視化時非常重要的一項。

Python中一些庫則專門處理涉及地理信息圖形的工作,比如Basemap,Cartopy等,由於Basemap和Cartopy的處理效率相對較低,處理步驟相對繁瑣,geopandas便應運而生。

geopandas擴展了pandas(pandas中有簡單的繪圖模塊,可以說是提供了數據處理和可視化一條龍服務)的數據類型,從而允許進行幾何操作,其目標是使python在地理空間數據處理更加簡單。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章