使用Python可求取对应数据的相关性,两列数据之间的相关性系数的展示并不直观
如果进行图形化的展示,可以帮助使用者更好理解当前的数据
使用python的画图matplotlib的工具包和seaborn的工具
使用sklearn的鸢尾花数据进行数据演示
通常情况下展示的两列关系散点图(手工,不直观):
# 引入工具包 from sklearn.datasets import load_iris from sklearn.decomposition import PCA import matplotlib.pyplot as plt import seaborn as sns import pandas as pd # 获取鸢尾花数据 iris= load_iris() x=iris.data y=iris.target #画图 fig = plt.figure() axe1 = fig.add_subplot(2,3,1) axe2 = fig.add_subplot(2,3,2) axe3 = fig.add_subplot(2,3,3) axe4 = fig.add_subplot(2,3,4) axe5 = fig.add_subplot(2,3,5) axe6 = fig.add_subplot(2,3,6) axe1.scatter(x[y==0,0],x[y==0,1],c='red',label=iris.target_names[0]) axe1.scatter(x[y==1,0],x[y==1,1],c='green',label=iris.target_names[1]) axe1.scatter(x[y==2,0],x[y==2,1],c='blue',label=iris.target_names[2]) axe2.scatter(x[y==0,0],x[y==0,2],c='red',label=iris.target_names[0]) axe2.scatter(x[y==1,0],x[y==1,2],c='green',label=iris.target_names[1]) axe2.scatter(x[y==2,0],x[y==2,2],c='blue',label=iris.target_names[2]) axe3.scatter(x[y==0,0],x[y==0,3],c='red',label=iris.target_names[0]) axe3.scatter(x[y==1,0],x[y==1,3],c='green',label=iris.target_names[1]) axe3.scatter(x[y==2,0],x[y==2,3],c='blue',label=iris.target_names[2]) axe4.scatter(x[y==0,1],x[y==0,2],c='red',label=iris.target_names[0]) axe4.scatter(x[y==1,1],x[y==1,2],c='green',label=iris.target_names[1]) axe4.scatter(x[y==2,1],x[y==2,2],c='blue',label=iris.target_names[2]) axe5.scatter(x[y==0,1],x[y==0,3],c='red',label=iris.target_names[0]) axe5.scatter(x[y==1,1],x[y==1,3],c='green',label=iris.target_names[1]) axe5.scatter(x[y==2,1],x[y==2,3],c='blue',label=iris.target_names[2]) axe6.scatter(x[y==0,2],x[y==0,3],c='red',label=iris.target_names[0]) axe6.scatter(x[y==1,2],x[y==1,3],c='green',label=iris.target_names[1]) axe6.scatter(x[y==2,2],x[y==2,3],c='blue',label=iris.target_names[2])
展示图片如下:
使用seaborn辅助工具
# 引入工具包 from sklearn.datasets import load_iris from sklearn.decomposition import PCA import matplotlib.pyplot as plt import seaborn as sns import pandas as pd # 获取鸢尾花数据 iris= load_iris() x=iris.data y=iris.target #数据格式转换 px = pd.Dataframe(x) #获取相关系数 px.corr() #展示两列关系图 #kind:用于控制非对角线上图的类型,可选'scatter'与'reg' #diag_kind:用于控制对角线上的图分类型,可选'hist'与'kde' #对角线上是各个属性的直方图(分布图) sns.pairplot(px) sns.pairplot(px,kind='reg',diag_kind='hist') #展示相关系数热力图 sns.heatmap(px.corr())
展示结果如下:
相关系数:
相关性散点图:
展示线性关系:
相关性热力图:



