cufflinks: 讓pandas擁有plotly的炫酷的動態視覺化能力
plotly是一款強大的基於javascript的視覺化庫,包括但不限於以下優點:
-
可開發web版視覺化介面
-
相比matplotlib、R更加現代化
-
支援3D視覺化繪圖
-
有強大豐富的多語言生態,支援python、R、matlab、Jupyter、Excel
-
與pandas可無縫銜接
pandas和plotly我們之前都分享過,但是plotly與pandas都這麼優秀好用,而且還可以無縫銜接使用,這麼重要的技巧沒有分享是個遺憾。所以今天準備把剛學到的分享給大家。
粗暴的銜接
如果沒有多瞭解無縫銜接,可能程式碼類似於下面這樣,程式碼量雖然不少但也實現了炫酷的效果。這裡就用比較簡單的折線圖為例
無縫銜接外掛庫-cufflinks
開始之前我們需要先安裝cufflinks庫,該庫可以很方便的生成實驗資料,而且最吸引人的是可以讓pandas真正實現無縫銜接plotly,在pandas語法中使用plotly的功能。但要注意目前cufflinks的支援僅限於jupyter notebook,在其他IDLE中無法使用。
執行
從上面的例子中我們直接在dataframe型別上使用plotly的繪圖方法iplot。下面我們詳細講解上面涉及到的一些模組,如生成實驗資料、繪圖、自定義繪圖等
生成實驗資料
學習pandas等資料分析包的時候往往需要準備各種各樣的資料集,或者使用一些資料生成包,cufflinks庫可以幫助我們快速生成所需要的資料,不會因為糾結資料而耽誤pandas的學習。
cufflinks.datagen是cufflinks封裝好的生成pandas資料的模組,裡面包含常見的如bar、pie、scatter、ohlc(美國折線圖資料)等。使用前可以先使用help函式檢視每種方法的文件
執行
Run
我們也可以自定義資料來源,如定義好資料的欄位名和長度。如果對講解過程中的方法引數不懂,可以使用help函式,如 help(cf.datagen.lines)
自定義圖主題樣式
cufflinks為我們提供了豐富的主題樣式,使用cufflinks.getThemes()可以得到當前cufflinks支援的所有主題
Run
上面的執行結果表明目前cufflinks支援包括polar、pearl、henanigans、solar、ggplot、space和white等7種主題。
自定義繪圖
cufflinks繪圖函式df.iplot引數很多,我們講解常用的一些引數
-
kind: 圖的種類,如scatter、pie、bar、spread等
-
mode: lines、markers、lines+markers,分別表示折線、點、折線和點
-
colors: 軌跡對應的顏色
-
dash:軌跡對應的虛實線,solid、dash、dashdot三種
-
width:軌跡的粗細
-
xTitle:橫座標名稱
-
yTitle: 縱座標的名稱
-
title: 圖表的標題
下面我們看一個例子
一行作圖
上面的例子都是使用十幾行做圖,實際上cufflinks可以只用一行就能做出很酷的圖表
從上面的例子中會發現cufflinks非常簡單易用,大家如果對此感興趣,可以關注cufflinks專案 https://github.com/santosjorge/cufflinks
推薦閱讀
大神kennethreitz寫出requests-html號稱為人設計的解析庫
如果想要獲取更多例子,可以關注本公眾號,
後臺回覆 ' 20190505 ' 獲得本教程及擴充套件教程的notebook程式碼下載方式