本文主要摘錄自 pycon 2017大會的乙個演講,同時結合自己的一些理解。
pycon 2017的相關演講主題是「the python visualization landscape」。
先來一張全景圖鎮樓~~
看完這張圖是不是有點懵?
python視覺化庫可以大致分為幾類:
matplotlib是python視覺化庫的基礎。matplotlib庫的設計參考了matlab,甚至連名稱也是以「mat」開頭。
matplotlib庫的一些優勢:(翻譯比較彆扭,英文原文也附後)
matplotlib庫的一些缺點:
matplotlib自2023年發布以來,使用情況還是呈現了良好的趨勢:
matplotlib部分繪圖例項如下:
關於matplotlib,你要的餅圖在這裡
也因此,後續開發者都吸取了matplotlib庫的優點,經過對matplotlib庫的缺點進行改進,從而衍生出一系列的視覺化庫。
基於matplotlib的庫概覽如下:
下面介紹兩個重要的基於matplotlib的第三方庫:pandas以及seaborn
pandas
可能我們平時使用pandas時更多的是用來進行資料分析和處理,其實pandas也提供了較為簡單的api來進行圖形繪製。
我個人一般是用pandas來處理資料,然後結合其他視覺化庫(如matplotlib,seaborn,bokeh等)來繪圖圖形。
pandas部分繪圖例項如下:
用pandas獲取商品****並視覺化
python求職top10城市,來看看是否有你所在的城市
seaborn
seaborn是基於matplotlib的python視覺化庫。它提供了乙個高階別介面用於圖形繪製。
seaborn在matplotlib的基礎上進行了更高階的api封裝,從而使得作圖更加容易,在大多數情況下使用seaborn就能做出很具有吸引力的圖。
python視覺化:seaborn庫熱力圖使用高階
seaborn部分繪圖例項如下:
兩個受歡迎度較高的視覺化庫bokeh和plotly
bokeh
bokeh (bokeh.js) 是乙個 python 互動式視覺化庫,支援現代化web瀏覽器,提供非常完美的展示功能。bokeh 的目標是使用 d3.js樣式提供優雅,簡潔新穎的圖形化風格,同時提供大型資料集的高效能互動功能。boken 可以快速的建立互動式的繪圖,儀錶盤和資料應用。
用pandas獲取商品****並視覺化
bokeh部分繪圖例項如下:
跟bokeh類似,也可以製作一些互動式的web圖。
plotly部分繪圖例項如下:
詳細內容可以去官網參考:
plotly
holoviews
holoviews能夠讓使用者構建有助於視覺化的資料結構,而且它包含豐富的可組合元素庫,可以覆蓋、巢狀和輕鬆定位。同時,它還支援快速資料探索。
holoviews可以和seaborn、pandas或者bokeh組合使用。
由於筆者還沒具體了解過holoviews的使用功能,這裡將英文的描述直接放在下面,以免個人理解不準確而產生誤導。
altair
altairs起源於d3,但**編寫量要比d3簡單。這裡有兩幅對比的圖如下:
altair 是 python 高階宣告式視覺化庫。altair 提供乙個 python api 在宣告式 manner 中構建靜態統計視覺化庫。
什麼是宣告式視覺化庫呢,不管是翻譯成中文的名稱還是看英文的名稱,我都一臉懵圈。幸好,有英文的進一步描述,如下:
總的來說,altairs讓開發者們更專注於資料及他們之間的關係,而不是一些不重要的細節。
最後,再放上這張python視覺化的全景圖,對於個人而言,不一定能全部熟悉使用,但是能熟練用好其中的一部分,實際應用於工作及專案中,也就ok了。
「2017-024」(不含引號)
Python和VS2017關於GDAL的安裝配置
gdal geospatial data abstraction library 是乙個在x mit許可協議下的開源柵格空間資料轉換庫,提供對多種柵格資料的支援。gdal使用抽象資料模型來解析它所支援的資料格式,抽象資料模型包括資料集,座標系統,仿射地理座標轉換,元資料,柵格波段,顏色表 子資料集域...
網易2017內推筆試2 不要二 python
程式設計題 不要二 時間限制 1秒 空間限制 32768k 二貨小易有乙個w h的網格盒子,網格的行編號為0 h 1,網格的列編號為0 w 1。每個格仔至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等於2。對於兩個格仔座標 x1,y1 x2,y2 的歐幾里得距離為 x1 x2 x1 x2 y1 ...
2023年6月28日 python爬蟲學習
1.寫入csv檔案 2.lxml的用法 3.自定義字典類的方法 4.bytes解碼得到str,str編碼得到bytes 5.json import csvimport lxml.html class scrapccallback def init self self.witer csv.writer...