Liz's Blog

Python學習筆記#8:Plotly & Cufflinks資料視覺化篇

| Comments

我對可以互動的東西一直很有興趣,所以Plotly也沒例外。基本上看過前面MatplotlibSeabornPandas內建製圖功能,對於plotly運用基本上也不會太陌生。只是卡在到底什麼spread plot找了一下的資料,原來只是相減的差異圖。

Udemy
課程名稱:Python for Data Science and Machine Learning Bootcamp
講師:Jose Portilla

Plotly是一個可以製作互動式圖表的軟體。Cufflinks則是連結pandas及plotly的軟體。

1.#終端機下載安裝plotly & Cufflinks套件

#目前conda只能支援安裝plotly,但還沒支援cufflinks
pip install plotly
pip install cufflinks

2.載入套件,設定套件所需條件

#載入pandas & numpy套件
import pandas as pd
import numpy as np
%matplotlib inline

#載入plotly套件,版本需大於1.9.0
from plotly import __version__
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
print(__version__)

#載入cufflinks套件
import cufflinks as cf

#連線用
init_notebook_mode(connected=True)

#離線用
cf.go_offline()

3.準備假資料測試用

df = pd.DataFrame(np.random.randn(100,4),columns='A B C D'.split())
df.head()

df2 = pd.DataFrame({'Category':['Z','X','Y'],'Values':[5,6,7]})
df2

4.使用cufflinks及iplot
(1)散佈圖(scatter)

#iplot(kind='scatter',x,y,mode='markers')。mode沒設定會變成所有點會連成一條線。
#size可設定點的大小。
df.iplot(kind='scatter',x='A',y='B',mode='markers',size=20)

(2)直條圖(barplots)

#iplot(kind='bar',x,y)
df2.iplot(kind='bar',x='Category',y='Values')

#iplot前也可使用groupby或pandas常用的數學運算
df.sum().iplot(kind='bar')

(3)盒鬚圖(boxplots)

df.iplot(kind='box')

(4)3D surface

#iplot(kind='surface')。colorscale改變z軸顏色。
df3 = pd.DataFrame({'x':[5,6,7,8,9],'y':[50,60,70,80,90],'z':[500,600,700,800,900]})
df3.iplot(kind='surface',colorscale='rdylbu')

(5)直方圖(histogram)

df.iplot(kind='hist')

(6)spread plot

#下面的區域圖其實是前者減掉後者的數值,大於0會出現在上面,小於0會出現在下面,也因此會看出前者大於後者的次數多還是少
df[['A','B']].iplot(kind='spread')

(7)泡泡圖(bubble)

df.iplot(kind='bubble',x='A',y='B',size='C')

(8)scatter_matrix和sns.pairplot()類似,可以將numeric data作圖看趨勢,但如果樣本數太多,可能會跑的很慢甚至當掉

df.scatter_matrix()

Comments

comments powered by Disqus