Python中除了matplotlib外還有哪些數據可視化的庫?
PYTHON很多好看的作圖庫,但是都是基於matplotlib進行開發封裝的!
我用過seaborn, bokeh, ggplot這三個庫!
seaborn是偏向於統計作圖的,尤其是線性作圖,用起來比較順手,簡單。seaborn整個語法層也會簡化很多,畫出的圖不需要修飾看起來也很好看。但是繪圖方式有限,不夠靈活
bokeh是使用了js。因此主打的是互動式繪圖,你可以在Ipython notebook里使用到最佳!畫出的圖非常好看,關鍵是可以交互修改! 缺點是語法有點生澀,一點也不必matplotlib簡單
ggplot就算了吧,和R語言那個GGPLOT2比起來,簡直是感覺在用兩個包,似然都是同一個人開發的! 而且原作者也在GITHUB上說了,不再會更新PYTHON的庫! 不過話說,ggplot2真的是繪圖神器,這幾乎是我還在用R語言的唯一原因。
因此,不管你想要用哪個庫,matplotlib都是必須要學的。雖然他語法複雜,但是靈活性大,你幾乎能畫出任何你想要的圖形。
Here we go:
- ggplot
- Seaborn
- Bokeh
- Pygal
- python-igraph
- folium
- NetworkX
- Mayavi
- VisPy
- PyQtGraph
- vincent
- Plotly
數據可視化是數據分析流程中的一個重要部分,好的可視化效果也會給你的演示文稿加分。我想試著從數據分析學習以及工作業務的角度去梳理一下Python常用的數據可視化package。
1. 基礎2D及3D可視化
- Matplotlib: 是一個最基礎的Python可視化庫,作圖風格接近MATLAB,所以稱為matplotlib。一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
- Seaborn:是一個基於matplotlib的高級可視化效果庫,針對的點主要是數據挖掘和機器學習中的變數特徵選取,seaborn可以用短小的代碼去繪製描述更多維度數據的可視化效果圖。
2.交互信息可視化
數據分析的一個業務場景就是用數據講故事,交互信息可視化的工具就在此凸顯出了優勢。
- Bokeh: 是一個用於做瀏覽器端交互可視化的庫,實現分析師與數據的交互。
- Plotly: 同樣也是做交互可視化的一把利器。Plotly同時支持Python和R語言,並且實現了在線導入數據做可視化並保存內容在雲端server的功能。做演示的時候,只需要在本地的jupyter notebook與plotly server建立通信,即可調用已經做好的可視化內容做展示。Plotly同時有freemium和premium兩種賬戶,免費賬戶已經可以滿足基本需要。
此外,作為數據分析師,一個重要的工作場景就是為業務團隊建立dashboard,plotly強大的交互功能得到了淋漓盡致的體現。
3. 地圖可視化
地理信息數據也會是部分數據分析師的業務場景。對於這類數據,可能傳統的matplotlib/seaborn,交互屬性的bokeh/plotly無法很好地對這類數據進行處理。我們需要使用處理地理數據引擎更強的可視化工具庫。
- Mapbox
- Geoplotlib
小結:
Python可視化的庫還有很多,熟練掌握matplotlib和seaborn,針對具體業務用好plotly和bokeh足以從容面對大多數的數據分析場景。回答中可視化效果的源代碼已經放置在科賽網,歡迎查看。
可供參考學習的鏈接:
- 10 Useful Python Data Visualization Libraries for Any Discipline
- Python Data Visualization: Comparing 7 tools
- How to make beautiful data visualization in Python with matplotlib
- Dashboard API in Python
- Bokeh Applications
歡迎關注科賽網及我的知乎專欄Data Trek,查閱對數據可視化庫學習的資料。
Python比較常用的做可視化的庫還有:
1、Seaborn:Seaborn: statistical data visualization
2、ggplot:ggplot | Home
3、Bokeh:Welcome to Bokeh
4、pygal:Pygal - pygal 2.0.0 documentation
5、Plotly:plotly
6、Geoplotlib:andrea-cuttone/geoplotlib: python toolbox for visualizing geographical data and making maps
7、Gleam:dgrtwo/gleam: Creating interactive visualizations with Python
8、missingno :ResidentMario/missingno: Missing data visualization module for Python.
9、Leather:leather 0.3.4 - leather 0.3.4 documentation
希望對你有用。
編程相關專欄:學習編程 - 知乎專欄
關於我:路人甲 - 知乎
非常全的介紹,你值得擁有。
10個對所有學科都有用的Python數據可視化庫 - Python - 伯樂在線
@知之 推的vincent不錯,後端是通過d3來做可視化的。
下面是常用的一些庫,供參考:
Matplotlib
[第三方庫] Matplotlib是Python的2D繪圖庫,它以各種硬拷貝格式和跨平台的互動式環境生成出版質量級別的圖形,開發者可以僅需要幾行代碼,便可以生成多種高質量圖形
seaborn
[第三方庫] Seaborn是在Matplotlib的基礎上進行了更高級的API封裝,它可以作為Matplotlib的補充
bokeh
[第三方庫] Bokeh是一種互動式可視化庫,可以在WEB瀏覽器中實現美觀的視覺效果
Plotly
[第三方庫] Plotly提供的圖形庫可以進行在線WEB交互,並提供具有出版品質的圖形,支持線圖、散點圖、區域圖、條形圖、誤差條、框圖、直方圖、熱圖、子圖、多軸、極坐標圖、氣泡圖、玫瑰圖、熱力圖、漏斗圖等眾多圖形
VisPy
[第三方庫] VisPy是用於互動式科學可視化的Python庫,旨在實現快速,可擴展和易於使用
PyQtGraph
[第三方庫] PyQtGraph是一個建立在PyQt4 / PySide和numpy之上的純Python圖形和GUI庫,主要用於數學/科學/工程應用
ggplot
[第三方庫] ggplot是用Python實現的圖形輸出庫,類似於 R中的圖形展示版本
pyqtgraph: 依賴pyside或是pyqt,兩者都通用,可以產生互動式圖表。http://www.pyqtgraph.org/
bokeh: 使用javascript,可以產生互動圖表內嵌於瀏覽器與iPython-notebook,內建圖表互動工具,很方便,但版本時常更新,語法有時候不向下兼容。
d3.py: python的D3.js,javascript驅動可互動圖表,可調整細項多。
python-ndv3: python的ndv3,javascript驅動的互動圖表,ndv3基本上就是d3.js的簡化版本,可調整項目較少。
mpld3: 與法跟matplotlib接近,靠D3.js javascript驅動,同樣可以嵌於瀏覽器。
toyplot: 風格很特殊的plot library,可調部分極少,當toy可行,一樣javascript驅動,可互動,可內嵌瀏覽器。
人生苦短我用plotnine!!!ggplot的bug非常多,兼容性非常不好。而今年剛剛publish的plotnine把R的ggplot2的API毫無保留的複製到python中。可以查看plotnine的官方網站:A Grammar of Graphics for Python 參考我寫的plotnine作圖Python科研統計作圖Plotnine+Seaborn+matplotlib替代R ggplot2系列!(一)
本來計劃寫一篇專欄,用jupyter加plotly來做模型的可視化,懶得不行,但是先特別推薦plotly這個包,動態效果,誰用誰說好
不要用Bokeh, 坑巨多,語法晦澀,文檔殘缺。我太后悔適用了一段時期,不看stack overflow 基本沒法用。期間提交了好些bug report.
相反plotly 好用很多,Python 端和js端語法清晰統一,目前在深入使用。當然,沒必要使用付費的cloud 功能。
恩…… 看到好多人推薦的ggplot,想提示下這個庫已經die off……,然後有一個用法完全一樣的plotnine,目前再用。
我想這篇文章一定可以幫到您:
10個超實用的python可視化庫,總有一款適合你~
千萬不要貪心,能把手頭數據分析清楚就好。
seaborn
plotly 不知道有沒有人 配色啥的真心好看 做開源項目時 我的mentor介紹的。
seaborn這個包竟然是我同事老公實驗室的一小哥們寫的。
guiqwt
qwtplot
plotly
如果要用Python可視化GPS數據,basemap是不二選擇
https://pypi.python.org/pypi/basemap
推薦閱讀:
※如何用Matplotlib讀取dat格式的文件並繪製出曲面圖?
※參加山東大學可視計算暑期學校是怎樣一種體驗?
※如何利用excel做可視化圖表?
※為什麼液晶顯示技術如此成熟,而大部分汽車儀錶盤還是使用物理儀錶而不是液晶顯示界面?