散点矩阵图(也称SPLOM,或Scatterplot Matrix)用于粗略展现N列数据中,不同列之间的关系,可以粗略估计哪些变量是正相关的,哪些是负相关的,进而为下一步数据分析提供决策。许多统计语言里面都有非常方便的函数生成散点矩阵图,比如说R。那么Python语言有没有呢?答案还是seaborn图形库。
其实seaborn库生成的散点矩阵图不是常规的散点矩阵图,其斜对角标注的不是列名,而是该列的概率密度分布图。这倒无妨,我们依然可以通过整个矩阵图进行分析判断。我们来看代码:
import seaborn as sns iris = sns.load_dataset("iris")
sns.pairplot(iris);
sns.plt.show()
|
如果数据量特别大,那么全部用散点表示会非常卡。我们应该用等高线表示,这样不会那么窘迫:
import seaborn as sns
g = sns.PairGrid(iris)
iris = sns.load_dataset("iris")
g.map_diag(sns.kdeplot)
g.map_offdiag(sns.kdeplot, cmap="Blues_d", n_levels=6);
sns.plt.show()
|
当需要从外部导入数据的时候,我们用pandas来导入:
# encoding:utf-8
import seaborn as sns
import pandas as pd
tips = pd.read_csv("winequality-white.txt")
# tips2 = tips[[0, 1, 2, 5]]
g = sns.PairGrid(tips)
g.map_diag(sns.kdeplot)
g.map_offdiag(sns.kdeplot, cmap="Blues_d", n_levels=3)
sns.plt.show()
|