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