一 操作说明
使用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())
展示结果如下:
相关系数:
相关性散点图:
展示线性关系:
相关性热力图: