Matplotlib學習---用seaborn畫矩陣圖(pair plot)

矩陣圖很是有用,人們常常用它來查看多個變量之間的聯繫。html

 

下面用著名的鳶尾花數據來畫一個矩陣圖。從sklearn導入鳶尾花數據,而後將其轉換成pandas的DataFrame類型,最後用seaborn畫圖。(seaborn包裏也有這個數據,也能夠直接從seaborn包導入此數據)spa

 

矩陣圖: sns.pairplot(data,hue=...)   ---   hue爲data裏的數據,用其來顯示不一樣顏色code

 

因爲data須要的格式爲每列是變量(在這裏是鳶尾花的四個特徵),每行則是各變量的觀測數據,所以須要將從sklearn導入的初始數據轉換格式。 數據轉換好以後應以下所示(此處只截取部分):htm

     sepal_length  sepal_width  petal_length  petal_width    species
0             5.1          3.5           1.4          0.2     setosa
1             4.9          3.0           1.4          0.2     setosa
2             4.7          3.2           1.3          0.2     setosa
3             4.6          3.1           1.5          0.2     setosa
4             5.0          3.6           1.4          0.2     setosa
5             5.4          3.9           1.7          0.4     setosa
6             4.6          3.4           1.4          0.3     setosa
..            ...          ...           ...          ...        ...
120           6.9          3.2           5.7          2.3  virginica
121           5.6          2.8           4.9          2.0  virginica
122           7.7          2.8           6.7          2.0  virginica
123           6.3          2.7           4.9          1.8  virginica

 

完整代碼以下:blog

import pandas as pd
from sklearn.datasets import load_iris
from matplotlib import pyplot as plt
import seaborn as sns
iris=load_iris()

d=pd.DataFrame(iris.data,columns=["sepal_length","sepal_width","petal_length","petal_width"])
d["species"]=iris.target #增長一列,爲鳶尾花的類別

d.loc[d["species"]==0,"species"]="setosa" #把類別這一列數值爲0的替換爲setosa
d.loc[d["species"]==1,"species"]="versicolor" #把類別這一列數值爲1的替換爲versicolor
d.loc[d["species"]==2,"species"]="virginica" #把類別這一列數值爲2的替換爲virginica

sns.pairplot(d,hue="species")

plt.show()

 

 圖像以下:ci

看第三行第四列的這幅圖,能夠看到petal_length和petal_width呈很強的正比關係。get

 

seaborn官網上有更完整的示例,有興趣能夠查看:http://seaborn.pydata.org/generated/seaborn.pairplot.htmlpandas

相關文章
相關標籤/搜索