《Python視覺化庫解析》
- Python視覺化庫解析
- 2017-12-01 15:39:36 0個評論 來源:weixin_39777626的部落格
- 收藏我要投稿
簡介
本文包含了一些較為流行的工具以及簡介,安裝方法(基於Linux系統,在一般情況下也適用於其他系統)。
大部分庫都基於Python3,但不建議因此就刪除Python2,因為還有一部分庫如 geoplotlib,Mayavi2等是基於Python2。
1.matplotlib
Matplotlib是一個Python 2維繪相簿,已經成為python中公認的資料視覺化工具,通過Matplotlib你可以很輕鬆地畫一些或簡單或複雜地圖形,幾行程式碼即可生成線圖、直方圖、功率譜、條形圖、錯誤圖、散點圖等等。
安裝:
linux系統方法一:
?1 2 3 |
sudo apt-get install python-dev
sudo apt-get install python-matplotlib
|
方法二:
?1 |
pip install matplotlib
|
先下載對應的安裝包pyproj和matplotlib
1 2 3 |
pip install pyproj 1.9.5.1 cp36 cp36m win_amd64.whl #輸入下載的pyproj檔名
pip install matplotlib_tests?2.1.0?py2.py3?none? any .whl
|
方法一:
?1 |
pip install matplotlib
|
方法二:
?1 2 3 |
sudo curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
|
2.Seaborn
Seaborn是基於matplotlib產生的一個模組,專攻於統計視覺化,可以和pandas進行無縫連結,使初學者更容易上手。相對於matplotlib,Seaborn語法更簡潔,兩者關係類似於numpy和pandas之間的關係。
安裝:
1 |
sudo pip install seaborn
|
1 |
pip install seaborn
|
3.HoloViews
HoloViews是一個開源的Python庫,可以用非常少的程式碼行中完成資料分析和視覺化,通過結合Bokeh提供的互動式小部件,快速呈現互動性和高維視覺化,使HoloViews變得更加強大。
安裝
方法一:
?1 |
pip install HoloViews
|
方法二:
?1 |
conda install -c ioam/label/dev holoviews
|
方法三:
?1 2 3 |
git clone git://github.com/ioam/holoviews.git
cd holoviews
pip install -e
|
方法四:
點選下載安裝
4.Altair
Altair是Python的一個公認的統計視覺化庫。它的API簡單、友好、一致,並建立在強大的vega - lite(互動式圖形語法)之上。Altair API不包含實際的視覺化呈現程式碼,而是按照vega - lite規範發出JSON資料結構。由此產生的資料可以在使用者介面中呈現,這種優雅的簡單性產生了漂亮且有效的視覺化效果,且只需很少的程式碼。
資料來源是一個DataFrame,它由不同資料型別的列組成。DataFrame是一種整潔的格式,其中的行與樣本相對應,而列與觀察到的變數相對應。資料通過資料轉換對映到使用組的視覺屬性(位置、顏色、大小、形狀、面板等)。
安裝
方法一:
?1 |
pip install Altair
|
方法二:
?1 |
conda install altair --channel conda-forge
|
5.PyQtGraph
PyQtGraph是在PyQt4 / PySide和numpy上構建的純 python的GUI圖形庫。它主要用於數學,科學,工程領域。儘管它完全是在python中編寫的,但它對數字運算和Qt的GraphicsView框架的影響巨大,速度也非常快。
安裝
方法一
?1 |
pip install PyQtGraph
|
方法二
點選下載安裝
6.ggplot
ggplot是基於R的ggplot2和圖形語法的Python的繪圖系統,實現了更少的程式碼繪製更專業的圖形。
它使用一個高階且富有表現力的API來實現線,點等元素的新增,顏色的更改等不同型別的視覺化元件的組合或新增,而不需要重複使用相同的程式碼,然而這對那些試圖進行高度定製的的來說,ggplot並不是最好的選擇,儘管它也可以製作一些非常複雜、好看的圖形。
ggplot與pandas緊密聯絡。如果你打算使用ggplot,最好將資料儲存在DataFrames中。
安裝:
linux系統 ?1 2 3 4 5 6 7 |
pip install numpy
pip install scipy
pip install statsmodels
pip install ggplot
|
下載ggplot安裝包然後執行
?1 |
pip install ggplot?0.11.5?py2.py3?none? any .whl
|
7.Bokeh
Bokeh是一個Python互動式視覺化庫,支援現代化web瀏覽器展示(圖表可以輸出為JSON物件,HTML文件或者可互動的網路應用)。它提供風格優雅、簡潔的D3.js的圖形化樣式,並將此功能擴充套件到高效能互動的資料集,資料流上。使用Bokeh可以快速便捷地建立互動式繪圖、儀表板和資料應用程式等。
Bokeh能與NumPy,Pandas,Blaze等大部分陣列或表格式的資料結構完美結合。
安裝:
方法一:如果有配置anaconda的話使用以下命令(推薦)
?1 |
conda install bokeh
|
方法二:
?1 2 3 4 5 6 7 |
pip install numpy
pip install pandas
pip install redis
pip install bokeh
|
8.pygal
pygal是一種開放標準的向量圖形語言,它基於XML(Extensible Markup Language),可以生成多個輸出格式的高解析度Web圖形頁面,還支援給定資料的html表匯出。使用者可以直接用程式碼來描繪影象,可以用任何文書處理工具開啟SVG影象,通過改變部分程式碼來使影象具有互動功能,並且可以插入到HTML中通過瀏覽器來觀看。
安裝:
1 |
pip install pygal
|
命令類似於
?1 |
python -m pip install --user pygal==1.7
|
命令類似於
方法一:
?1 |
pip install --user pygal==1.7
|
方法二:
?1 |
pip install git+https://github.com/vispy/vispy.git
|
9.VisPy
VisPy是一個用於互動式科學視覺化的Python庫,快速、可伸縮、且易於使用,是一個高效能的互動式2D / 3D資料視覺化庫,利用了現代圖形處理單元(gpu)的計算能力,通過OpenGL庫來顯示非常大的資料集。
安裝
1 |
pip install VisPy
|
10.NetworkX
NetworkX是一個Python包,用於建立、操縱和研究複雜網路的結構、以及學習複雜網路的結構、功能及其動力學。
NetworkX提供了適合各種資料結構的圖表、二合字母和多重圖,還有大量標準的圖演算法,網路結構和分析措施,可以產生隨機網路、合成網路或經典網路,且節點可以是文字、影象、XML記錄等,並提供了一些示例資料(如權重,時間序列)。
NetworkX測試的程式碼覆蓋率超過90%,是一個多樣化,易於教學,能快速生成圖形的Python平臺。
安裝
方法一:
?1 |
pip install networkx
|
方法二:
點選下載安裝
11.Plotly
Plotly的Python graphing library在網上提供了互動式的、公開的,高質量的圖表集,可與R、python、matlab等軟體對接。它擁有在別的庫中很難找到的幾種圖表型別,如等值線圖,樹形圖和三維圖表等,圖示型別也十分豐富,申請了API金鑰後,可以一鍵將統計圖形同步到雲端。但美中不足的是,開啟國外網站會比較費時,且一個賬號只能建立25個圖表,除非你升級或刪除一些圖表。
安裝:
?1 |
pip install plotly
|
12.geoplotlib
Basemap和Cartopy包支援多個地理投影,並提供一些視覺化效果,包括點圖、熱圖、等高線圖和形狀檔案。PySAL是一個由Python編寫的空間分析函式的開源庫,它提供了許多基本的工具,主要用於形狀檔案。但是,這些庫不允許使用者繪製地圖貼圖,並且對自定義視覺化、互動性和動畫的支援有限。
geoplotlib是python的一個用於地理資料視覺化和繪製地圖的工具箱,並提供了一個原始資料和所有視覺化之間的基本介面,支援在純python中開發硬體加速的互動式視覺化,並提供點對映、核心密度估計、空間圖、泰森多邊形圖、形狀檔案和許多更常見的空間視覺化的實現。除了為常用的地理資料視覺化提供內建的視覺化功能外,geoplotlib還允許通過定義定製層來定義複雜的資料視覺化(繪製OpenGL,如分數、行和具有高效能的多邊形),建立動畫。
安裝:
?1 |
pip install geoplotlib
|
13.folium
folium是一個建立在Python系統之上的js庫,可以很輕鬆地將在Python中操作的資料視覺化為互動式的單張地圖,且將緊密地將資料與地圖聯絡在一起,可自定義箭頭,網格等HTML格式的地圖示記。該庫還附有一些內建的地形資料。
安裝
方法一:
?1 |
pip install folium
|
方法二:
?1 |
conda install folium
|
方法三:
點選下載安裝
14.Gleam
Gleam允許你只利用Python構建資料的互動式,生成視覺化的網路應用。無需具備HTMLCSS或JaveScript知識,就能使用任一種Python視覺化庫控制輸入。當你建立一個圖表的時候,你可以在上面加上一個域,讓任何人都可以實時地玩轉你的資料,讓你的資料更通俗易懂。
安裝:
?1 |
pip install Gleam
|
15.vincent
Vincent是一個很酷的視覺化工具,它以Python資料結構作為資料來源,然後把它翻譯成Vega視覺化語法,並且能夠在d3js上執行。這讓你可以使用Python指令碼來建立漂亮的3D圖形來展示你的資料。Vincent底層使用Pandas和DataFrames資料,並且支援大量的圖表—-條形圖、線圖、散點圖、熱力圖、堆條圖、分組條形圖、餅圖、圈圖、地圖等等。
安裝
?1 |
pip install vincent
|
16.mpld3
mpld3基於python的graphing library和D3js,彙集了Matplotlib流行的專案的JavaScript庫,用於建立web互動式資料視覺化。通過一個簡單的API,將matplotlib圖形匯出為HTML程式碼,這些HTML程式碼可以在瀏覽器內使用。
安裝
方法一:
?1 |
pip install mpld3
|
方法二:
點選下載安裝
17.python-igraph
Python介面的igraph高效能圖形庫,主要針對複雜的網路研究和分析
安裝
方法一:
?1 |
pip install python-igraph
|
方法二:
點選下載安裝
18.missingno
沒有高質量的資料,就沒有高質量的資料探勘結果,當我們做監督學習演算法,難免會碰到混亂的資料集,缺失的值,當缺失比例很小時,可直接對缺失記錄進行捨棄或進行手工處理,missingno提供了一個小型的靈活的、易於使用的資料視覺化和實用工具集,用影象的方式讓你能夠快速評估資料缺失的情況,而不是在資料表裡面步履維艱。你可以根據資料的完整度對資料進行排序或過濾,或者根據熱度圖或樹狀圖來考慮對資料進行修正。
missingno 是基於matplotlib建造的一個模組,所以它出圖速度很快,並且能夠靈活的處理pandas資料。
安裝:
方法一:
?1 |
pip install missingno
|
方法二:
點選下載安裝
19.Mayavi2
Mayavi2是一個通用的、跨平臺的三維科學資料視覺化工具。可以在二維和三維空間中顯示標量、向量和張量資料。可通過自定義源、模組和資料過濾器輕鬆擴充套件。Mayavi2也可以作為一個繪圖引擎,生成matplotlib或gnuplot指令碼,也可以作為其他應用程式的互動式視覺化的庫,將生成的圖片嵌入到其他應用程式中。
安裝
?1 |
pip install mayavi
|
20.Leather
Leather一種可讀且使用者介面友好的API,新手也能快速掌握。影象成品非常基礎,適用於所有的資料型別,針對探索性圖表進行了優化,產生與比例無關的SVG圖,這樣在你調整影象大小的時候就不會損失影象質量
安裝
方法一:
?1 |
pip install leather
|
方法二:
點選下載安裝
結語:
在 Python 中,將資料視覺化有多種選擇,因此何時選用何種方案才變得極具挑戰性。
如果你想做一些專業的統計圖表,我推薦你使用Seaborn,Altair;數學,科學,工程領域的學者就選擇PyQtGraph,VisPy,Mayavi2;網路研究和分析方面,NetworkX,python-igraph會是一個不錯的選擇。
地理投影就選geoplotlib,folium;評估資料缺失就選missingno;有了HoloViews再也不用為高維圖形犯愁;如果你不喜歡花俏的修飾,那就選擇Leather。
如果你是一名新手但有MATLAB基礎,matplotlib會很好上手;有R基礎的就選ggplot;如果你是新手或懶癌晚期者,Plotly將會是一大福音,它提供了大量圖表集可供你選擇與使用。