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

分享

09-選擇適合你的Python可視化工具(續(xù))

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

選擇適合你的Python可視化工具(續(xù))

本篇將接著上篇,根據(jù)Python可視化工具等級關(guān)系分類,依次對每類做一個概述,并對每類的重點庫進(jìn)行簡要介紹。

Core,核心庫

這一類有3個庫,分別是:

  1. matplotlib
  2. plotly
  3. bokeh

為什么稱它們?yōu)楹诵膸炷??因為,有多個其它高級可視化庫是在它們的基礎(chǔ)上構(gòu)建的。

注意:這里的高級、低級是指它們語法的封裝程度,是相對的,并不是指它們的功能是否高級。

matplotlib:前面已說得很多了,基于它再開發(fā)的庫就有十幾個。

plotly:是一個可交互,基于瀏覽器的繪圖庫,主打功能是繪制在線可交互的圖表。plotly繪制的圖能直接在jupyter中查看,也能保存為離線網(wǎng)頁,或者保存在plot.ly云端服務(wù)器內(nèi),以便在線查看。

cufflinks 庫就是基于plotly+pandas再開發(fā)的。

Bokeh:是一個專門針對Web瀏覽器呈現(xiàn)功能的交互式可視化Python庫。這是Bokeh與其它可視化庫最核心的區(qū)別。

  • 專門針對Web瀏覽器的交互式、可視化Python繪圖庫
  • 可以做出像D3.js簡潔漂亮的交互可視化效果,但是使用難度低于D3.js。
  • 獨立的HTML文檔或服務(wù)端程序
  • 可以處理大量、動態(tài)或數(shù)據(jù)流
  • 支持Python (或Scala, R, Julia…)
  • 基于Javascript,但不需要使用Javascript

Chartify可視化庫就是基于Bokeh創(chuàng)建。

High-Level Shared API,高級共享API

構(gòu)建在核心Python或JS庫之上,共享panda .plot() API的庫。

這一類有6個庫:

  1. pandas
  2. xarray
  3. cufflinks
  4. hvplot
  5. Pandas-Bokeh
  6. pdvega

它們的特點是共享panda.plot() API,提供了對pandas的DataFrame數(shù)據(jù)結(jié)構(gòu)的支持。

pandas:

通過導(dǎo)入matplotlib.pyplot,將pyplot的函數(shù)進(jìn)一步封裝為DataFrame的方法,實現(xiàn)了兩個目標(biāo):

  • 簡便、快速的繪圖方式;
  • 對DaraFrame的支持。

由此可見,你如果熟練掌握了matplotlib,掌握pandas中的繪圖不需要走過10分鐘的時間。

xarray:多維數(shù)組中的繪圖。在Pandas早期版本中有一個xarray數(shù)組,后來把這一部分完全交由xarray庫處理。多維(又名N維,ND)陣列(有時稱為“張量”)是計算科學(xué)的重要組成部分。它涉及廣泛的領(lǐng)域,包括物理學(xué),天文學(xué),地球科學(xué),生物信息學(xué),工程學(xué),金融學(xué)和深度學(xué)習(xí)。在Python中,NumPy提供了用于處理原始ND陣列的基本數(shù)據(jù)結(jié)構(gòu)和API。但是,真實世界的數(shù)據(jù)集通常不僅僅是原始數(shù)據(jù); 它們有標(biāo)簽,用于編碼有關(guān)數(shù)組值如何映射到空間,時間等位置的信息。

xarray繪圖功能是matplotlib庫的一個薄包裝器 。

cufflinks:基于plotly+pandas再開發(fā)的。當(dāng)然是要結(jié)合兩個的優(yōu)勢了。提供了對pandas數(shù)據(jù)的支持,和plotly的交互式功能。

09-選擇適合你的Python可視化工具(續(xù))

Pandas-Bokeh:顧名思義,Pandas和Bokeh的結(jié)合。

09-選擇適合你的Python可視化工具(續(xù))

hvplot:Python數(shù)據(jù)生態(tài)系統(tǒng)有許多核心Python數(shù)據(jù)容器,允許用戶使用各種數(shù)據(jù)類型,包括:

  • Pandas:DataFrame,Series(柱狀/表格數(shù)據(jù))
  • XArray:Dataset,DataArray(多維數(shù)組)
  • Dask:DataFrame,Series,Array(分布式/核心數(shù)組和列數(shù)據(jù))
  • Streamz:DataFrame(s),Series(s)(流式柱狀數(shù)據(jù))
  • Intake:DataSource(數(shù)據(jù)目錄)
  • GeoPandas:GeoDataFrame(幾何數(shù)據(jù))
  • NetworkX:圖表(網(wǎng)絡(luò)圖)

其中一些庫具有高級繪圖API的概念,使用戶可以非常輕松地生成常見的繪圖類型。本機(jī)繪圖API通常基于Matplotlib構(gòu)建,它提供了堅實的基礎(chǔ),但現(xiàn)代交互式繪圖庫(如Bokeh和HoloViews)的功能較弱。

hvPlot提供了一個基于HoloViews的高級繪圖API,它提供了一個通用且一致的API,用于繪制所有上述格式的數(shù)據(jù)。

hvPlot是PyViz計劃的一部分,旨在使基于Python的可視化工具能夠很好地協(xié)同工作。

09-選擇適合你的Python可視化工具(續(xù))

pdvega:使用與pandas內(nèi)置可視化工具幾乎相同的API 快速基于DataFrame數(shù)據(jù)創(chuàng)建交互式圖表,可以在Jupyter notebook中輕松使用。

High-Level,高級庫

InfoVis組的5個庫,專注于數(shù)據(jù)可視化的高級操作,構(gòu)建在核心Python或JS庫之上。

  1. seaborn,基于matplotlib,特長在繪制統(tǒng)計圖形。
  2. altair,基于Vega-Lite JSON規(guī)范構(gòu)建,特點在統(tǒng)計、簡潔、美觀。
  3. holoviews,基于Plotly, Matplotlib的OO接口,Bokeh的SVG導(dǎo)出,3D支持,提供了web繪圖和交互式繪圖功能;這是PyViz的發(fā)展方向--“融合”
  4. plotly_express,顧名思義,plotly的進(jìn)一步封裝,復(fù)雜圖表的簡單語法。
  5. chartify,從它官方宣稱的“可以讓數(shù)據(jù)科學(xué)家輕松創(chuàng)建圖表”,就兩個字進(jìn)一步的”封裝“。

Native-GUI,本機(jī)GUI

InfoVis組的5個庫,目標(biāo)是獲得用于交互式繪圖的本機(jī)桌面GUI界面。

  1. pyqtgraph
  2. glue:多個文件的交互式鏈接統(tǒng)計圖形,用于探索相關(guān)數(shù)據(jù)集內(nèi)部和之間的關(guān)系。
  3. chaco:交互式二維繪圖。
  4. veusz:一個2D和3D科學(xué)繪圖包,旨在簡單。
  5. gr:跨平臺可視化應(yīng)用程序的通用框架。它為開發(fā)人員提供了一個緊湊,可移植且一致的圖形庫。

該類最重要的是:PyQtGraph:

PyQtGraph旨在提供工程和科學(xué)應(yīng)用程序通常所需的圖形和用戶界面功能。其主要目標(biāo)是:

  • 提供快速,交互式圖形以顯示數(shù)據(jù)(圖表,視頻等)
  • 提供工具以幫助快速應(yīng)用程序開發(fā)(例如,Qt Designer中使用的屬性樹)。

PyQtGraph雖然是開源項目,但版權(quán)屬于北卡羅來納大學(xué)教堂山分校。

PyQtGraph通過PyQt或PySide大量使用Qt GUI平臺來獲得高性能圖形,使用numpy來支持大量高速運算。特別是使用Qt的GraphicsView框架提供了功能強(qiáng)大的圖形系統(tǒng)。

pyqtgraph的核心功能包括:

  • 基本數(shù)據(jù)可視化基元:圖像,線和散點圖
  • 足夠快,可以實時更新視頻/繪圖數(shù)據(jù)
  • 交互式縮放/平移,平均,F(xiàn)FT,SVG / PNG導(dǎo)出
  • 用于標(biāo)記/選擇繪圖區(qū)域的小部件
  • 用于標(biāo)記/選擇圖像感興趣區(qū)域并自動切片多維圖像數(shù)據(jù)的小部件
  • 用于構(gòu)建定制圖像感興趣區(qū)域小部件的框架
  • 取代/補(bǔ)充Qt的對接系統(tǒng),以允許更復(fù)雜(和更可預(yù)測)的對接安排
  • ParameterTree小部件,用于動態(tài)接口的快速原型設(shè)計(類似于Qt Designer和許多其他應(yīng)用程序中的屬性樹)

09-選擇適合你的Python可視化工具(續(xù))

pyqtgraph-3d

Other InfoVis,其它信息可視化庫

InfoVis繪制不適合上述其他類別的庫。

  1. pygal,一個用python編寫的動態(tài)SVG(Scalable Vector Graphics)圖表庫。 SVG意為可縮放的矢量圖形,它是基于XML(Extensible Markup Language)。
  2. plotnine,是Python 中對ggplot2圖形語法的一種實現(xiàn),允許用戶通過將數(shù)據(jù)顯式映射到構(gòu)成繪圖的可視對象來組合繪圖。 是一位德國學(xué)者完成的,它幾乎是對R ggplot2繪圖包的移植。
  3. bqplot:使用pythonic API為二維可視化提供統(tǒng)一的框架,為添加用戶交互提供合理的API(平移,縮放,選擇等)
  4. toyplot:toy,玩具,這是Python版的一款適合兒童的繪圖工具包。
  5. biggles:一個Python模塊,用于創(chuàng)建出版品質(zhì)的2D科學(xué)圖,看不出有什么特點。

SciVis

用于可視化真實坐標(biāo)(地理空間、物理空間)中的科學(xué)數(shù)據(jù)的庫,通常使用OpenGL或WebGL。物理、環(huán)境科學(xué)人士關(guān)注的類,與我等草根的距離太遠(yuǎn)了。

  1. VTK:VTK 包括許多高級算法(例如,表面重建,隱式建模)和渲染技術(shù),被院士級人士用于教學(xué)和研究 。
  2. vispy:Python中的交互式科學(xué)可視化,特點:3D, 立體,交互,大量數(shù)據(jù)。
  3. pyvista
  4. mayavi
  5. ipyvolume
  6. glumpy
  7. itk-jupyter-widgets

Geospatial,地理空間

處理地理坐標(biāo)數(shù)據(jù)的工具。GIS緊密相關(guān)。

  1. geopandas:GeoPandas是一個向pandas對象添加地理數(shù)據(jù)支持的項目 。
  2. folium:folium基于Python生態(tài)系統(tǒng)的數(shù)據(jù)處理優(yōu)勢和leaf .js庫的映射優(yōu)勢。使用Python操作數(shù)據(jù),然后通過folium在單張地圖中可視化數(shù)據(jù)。
  3. cartopy:旨在使數(shù)據(jù)分析和可視化的繪制地圖變得容易。
  4. gmplot:Cartopy是一個Python包,旨在使數(shù)據(jù)分析和可視化的繪圖地圖變得容易。
  5. ipyleaflet:Jupyter / Leaflet 之間的橋梁,可在Jupyter筆記本中實現(xiàn)交互式地圖。
  6. geoviews:......
  7. geoplotlib:......
  8. geoplot:......

Other domain-specific,其它特定領(lǐng)域的包

專注于特定的研究或應(yīng)用領(lǐng)域繪圖、圖像處理工具包。

  1. networkx:繪制網(wǎng)絡(luò)圖。
  2. scikit-image:用于圖像處理
  3. missingno:提供了一個靈活且易于使用的缺失數(shù)據(jù)可視化和實用程序的小工具集,使您可以快速直觀地總結(jié)數(shù)據(jù)集的完整性(或缺少)。
  4. yellowbrick:可視化分析和診斷工具,方便機(jī)器學(xué)習(xí)模型選擇。
  5. yt:yt支持結(jié)構(gòu)化,可變分辨率網(wǎng)格,非結(jié)構(gòu)化網(wǎng)格以及離散或采樣數(shù)據(jù)(如粒子)。專注于推動物理上有意義的探究,已經(jīng)應(yīng)用于諸如天體物理學(xué),地震學(xué),核工程,分子動力學(xué)和海洋學(xué)等領(lǐng)域。
  6. hypertools:HyperTools旨在促進(jìn)降維 -基于高維數(shù)據(jù)的視覺探索?;韭窂绞禽斎敫呔S數(shù)據(jù)集(或一系列高維數(shù)據(jù)集),并在單個函數(shù)調(diào)用中,減少數(shù)據(jù)集的維度并創(chuàng)建繪圖。
  7. scikit-plot:機(jī)器學(xué)習(xí)領(lǐng)域。
  8. clustergrammer2:構(gòu)建交互式熱圖的Jupyter小部件。
  9. arviz:一個用于貝葉斯模型探索性分析的Python軟件包。包括后驗分析,模型檢查,比較和診斷功能。

根據(jù)你研究的領(lǐng)域去進(jìn)一步地了解吧!

Large-data rendering,大數(shù)據(jù)集渲染

用于在可視化之前對服務(wù)器端數(shù)據(jù)進(jìn)行柵格化/聚合的工具。

  1. datashader:Datashader是一個數(shù)據(jù)柵格化管道,用于創(chuàng)建大量數(shù)據(jù)的有意義表達(dá)。
  2. vaex :Vaex是一個用于可視化和探索大表格數(shù)據(jù)集。它可以 在N維網(wǎng)格上計算每秒超過十億個對象/行的統(tǒng)計數(shù)據(jù),例如平均值,總和,計數(shù),標(biāo)準(zhǔn)偏差等 。可視化使用直方圖,密度圖和3d體積渲染完成,允許交互式探索大數(shù)據(jù)。

Dashboarding,儀表板

用于創(chuàng)建動態(tài)的python支持的web應(yīng)用程序或儀表板的庫,用戶可以與這些庫交互來探索或分析數(shù)據(jù)。

  1. dash
  2. panel
  3. voila

09-選擇適合你的Python可視化工具(續(xù))

Colormapping,顏色映射

用于生成新顏色映射的顏色映射和工具的集合。

  1. palettable
  2. colorcet
  3. cmocean
  4. viscm

Dormant projects

作者已不再開發(fā)和維護(hù)的工具。

  1. basemap
  2. d3po
  3. galry
  4. ggpy
  5. gleam
  6. leather
  7. lightning
  8. mpld3
  9. PyQwt
  10. vincent
  11. visvis

你不會去學(xué)習(xí)和使用它們吧。

未完待續(xù)

篇幅有點長了,如何選擇適合你的Python數(shù)據(jù)可視化工具,下篇接著聊。

關(guān)注”Python草堂“,輕松閱讀下一篇。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多