小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

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

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

Python 可視化工具全景圖

R的可視化工具包ggplot2為R的流行起到了很好的推動(dòng)作用。常有人拿這個(gè)與Python作比較,認(rèn)為可視化是Python相對(duì)于R的短板。

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

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

  • 似乎又都有一些不如人意的地方,讓初學(xué)習(xí)者常換工具,浪費(fèi)了太多的時(shí)間和精力。

所以,本篇將:

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

  2. 對(duì)一些重要的工具進(jìn)行一些簡單地介紹;

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

Python工具知多少?

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

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

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

計(jì)算機(jī)繪圖世界的等級(jí)制度

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

一級(jí),硬件級(jí)

計(jì)算機(jī)繪圖世界有兩個(gè)接近硬件級(jí)的底層庫,或者叫規(guī)范、標(biāo)準(zhǔn):

  • OpenGL,通用的

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

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

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

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

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

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

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

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

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

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

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

IEEE 的SciVis 和 InfoVis 組

IEEE組織習(xí)慣于將Python可視化工具分為兩個(gè)組:

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

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

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

螺旋星系圖

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

InfoVis組的細(xì)分

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

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

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

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

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

  • JavaScript,及基于JavaScript的庫。

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

  • WebGL,基于WebGL標(biāo)準(zhǔn)的Web繪圖。

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

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

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

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

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

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

  • Python重要庫的介紹;

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

  • 我為什么選擇Matplotlib。

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多