Python 可視化工具全景圖 R的可視化工具包ggplot2為R的流行起到了很好的推動作用。常有人拿這個與Python作比較,認為可視化是Python相對于R的短板。 其實我以為,恰恰是Python的可視化生態(tài)過于“豐富”,豐富到有點讓人無所適從:
所以,本篇將:
Python工具知多少?根據(jù)PyViz的登記,目前共有 68 個Python可視化工具(庫、包)。其中有11個的作者已不再開發(fā)或認可。仍在開發(fā)維護的工具有57個之多。前面的圖展示了其中目前仍在維護的主要工具。 這么多可視化工具,初看起來確實令人生畏。 對這些工具進行一下歸類比較,有助于我們做出合適的選擇。 計算機繪圖世界的等級制度注意:這是一個草根為自己總結(jié)的! 一級,硬件級計算機繪圖世界有兩個接近硬件級的底層庫,或者叫規(guī)范、標準:
一般的顯卡制造商基于它們編寫顯卡(圖形)驅(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 庫繪制螺旋星系圖。 螺旋星系圖 二是:Information Visualization (InfoVis) ,信息可視化。專注于任意空間中信息的可視化,而不一定是三維物理世界。InfoVis組的庫使用打印頁面或計算機屏幕的兩個維度來抽象、解釋空間,通常使用軸和標簽。常見的Python這類庫有,pandas, NetworkX, Cartopy,ggplot, plotnine, HoloViews, GeoViews,seaborn等。 InfoVis組的細分我等草根很少需要去使用SciVis組的可視化工具,99%都在InfoVis組選擇。 可以根據(jù)庫的基礎(chǔ)語言、等級、應(yīng)用場景等,InfoVis組的庫可以進一步細分為若干個子組:
根據(jù)等級關(guān)系分類根據(jù)庫在Python可視化生態(tài)中所處的位置、領(lǐng)域、狀態(tài),可以將68個Python可視化工具分為以下12類: 其中休眠狀態(tài)的庫有11個,原則上不應(yīng)選擇這些庫。 為了有一個合適的篇幅,將在下篇中接著討論:
|
|
來自: 星光閃亮圖書館 > 《Python學習》