矩陣圖很是有用,人們常常用它來查看多個變量之間的聯繫。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.html。pandas