日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

08-選擇適合你的Python可視化工具

 星光閃亮圖書館 2019-08-30

08-選擇適合你的Python可視化工具

Python 可視化工具全景圖

R的可視化工具包ggplot2為R的流行起到了很好的推動作用。常有人拿這個與Python作比較,認為可視化是Python相對于R的短板。

其實我以為,恰恰是Python的可視化生態(tài)過于“豐富”,豐富到有點讓人無所適從:

  • 這些庫各有長短、各有側(cè)重,常常不知如何選擇;

  • 似乎又都有一些不如人意的地方,讓初學習者常換工具,浪費了太多的時間和精力。

所以,本篇將:

  1. 系統(tǒng)地分析一下Python可視化工具的生態(tài);

  2. 對一些重要的工具進行一些簡單地介紹;

  3. 最后給出一些如何根據(jù)自己的情況選擇合適的一兩個Python可視化工具的建議。

Python工具知多少?

根據(jù)PyViz的登記,目前共有 68 個Python可視化工具(庫、包)。其中有11個的作者已不再開發(fā)或認可。仍在開發(fā)維護的工具有57個之多。前面的圖展示了其中目前仍在維護的主要工具。

這么多可視化工具,初看起來確實令人生畏。

對這些工具進行一下歸類比較,有助于我們做出合適的選擇。

計算機繪圖世界的等級制度

注意:這是一個草根為自己總結(jié)的!

一級,硬件級

計算機繪圖世界有兩個接近硬件級的底層庫,或者叫規(guī)范、標準:

  • OpenGL,通用的

  • Direct3,windows系統(tǒng)上的

一般的顯卡制造商基于它們編寫顯卡(圖形)驅(qū)動程序。

二級,程序開發(fā)語言級

程序開發(fā)語言,在底層調(diào)用相對低級的圖形庫,提供一套高級一點的API供程序員使用。如,Python中的PyQtGraph,2D圖形使用Qt的GraphicsView框架,3D圖形使用OpenGL。

一般情況下,程序開發(fā)人員才會直接使用它們。

三級,繪圖軟件(庫、包)級

繪圖時直接使用的庫和包,如matplotlib,調(diào)用Python的PyQtGraph。但一般使用人員都是直接使用matplotlib提供的API接口(函數(shù),對象等)。

需要繪圖、可視化的人員使用;做二次開發(fā)的人員使用。

四級,二次開發(fā)和封裝

在三級庫包的基礎(chǔ)上再開發(fā)、封裝,如基于matplotlib做二次開發(fā)、封裝的plotnine、seaborn等。實際上matplotlib的pyplot模塊也就是mpl核心對象的封裝函數(shù)集。

主要用于快速繪圖、可視化工作。

IEEE 的SciVis 和 InfoVis 組

IEEE組織習慣于將Python可視化工具分為兩個組:

一是:Scientific Visualization (SciVis) ,科學可視化。主要基于OpenGL圖形標準,提供三維或四維物理過程的圖形密集可視化,側(cè)重于工程和科學環(huán)境。常見的這類Python可視化工具有VisPy, glumpy, GR, Mayavi等。

如使用 VisPy 庫繪制螺旋星系圖。

08-選擇適合你的Python可視化工具

螺旋星系圖

二是:Information Visualization (InfoVis) ,信息可視化。專注于任意空間中信息的可視化,而不一定是三維物理世界。InfoVis組的庫使用打印頁面或計算機屏幕的兩個維度來抽象、解釋空間,通常使用軸和標簽。常見的Python這類庫有,pandas, NetworkX, Cartopy,ggplot, plotnine, HoloViews, GeoViews,seaborn等。

InfoVis組的細分

我等草根很少需要去使用SciVis組的可視化工具,99%都在InfoVis組選擇。

可以根據(jù)庫的基礎(chǔ)語言、等級、應(yīng)用場景等,InfoVis組的庫可以進一步細分為若干個子組:

08-選擇適合你的Python可視化工具

  • Matplotlib:最古老,也是最受歡迎的InfoVis庫之一,具有廣泛的2D繪圖類型和輸出格式。使用桌面GUI工具包(如Qt和GTK)庫,重點放在靜態(tài)圖像以及交互式圖形上。也對3D提供了一定的支持,但有一些限制。

  • 基于matplotlib:多年來,基于Matplotlib二次開發(fā),構(gòu)建了各種工具。目的有:用于特定類型數(shù)據(jù)的渲染引擎,用于特定領(lǐng)域(如Pandas中的繪圖對DataFrame的支持),或提供更高級別的API以簡化繪圖步驟(如ggplot, plotnine),或者特定用途(如seaborn的統(tǒng)計繪圖)等。

  • JavaScript,及基于JavaScript的庫。

  • JSON,基于JavaScript的D3.js庫。

  • WebGL,基于WebGL標準的Web繪圖。

  • 其他,提供一些特殊的、補充功能的庫,如用于可視化網(wǎng)絡(luò)的graphviz。

根據(jù)等級關(guān)系分類

根據(jù)庫在Python可視化生態(tài)中所處的位置、領(lǐng)域、狀態(tài),可以將68個Python可視化工具分為以下12類:

08-選擇適合你的Python可視化工具

其中休眠狀態(tài)的庫有11個,原則上不應(yīng)選擇這些庫。

為了有一個合適的篇幅,將在下篇中接著討論:

  • Python重要庫的介紹;

  • 如何選擇適合你的Python可視化工具;

  • 我為什么選擇Matplotlib。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多