条件图
条件图或协同图或子集图是当以第三个变量为条件时两个变量的散点图。第三个变量称为条件变量。此变量可以同时具有连续值或分类值。在连续变量中,我们通过将子集划分为更小的值范围来创建子集。在分类变量中,子集是根据不同的类别创建的。
让我们取三个变量 X、Y 和 Z。Z 是我们分成 k 组的变量。在这里,可以通过多种方式形成群组,例如:
- 通过将数据分成大小相等的 k 组。
- 通过根据散点图将数据划分为不同的簇。
- 通过将数据点的范围划分为相等的值。
- 分类数据根据数据框的不同类别进行自然分组。
然后,我们绘制 n 行 m 列矩阵,其中 n*m >= k。每组(行,列)代表一个单独的散点图,其中每个散点图由以下组件组成。
- 垂直轴: 变量 Y
- 水平轴:变量 X
其中,使用与第 i 行和第 j 列对应的组中的点。
调节图提供了以下问题的答案:
- 这两个变量之间有关系吗?
- 如果存在关系,那么关系的性质是否取决于第三个变量?
- 数据中的不同组的行为是否相似?
- 数据中是否有异常值?
执行
Python3
# code
% matplotlib inline
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# load training file for titanic dataset
titanic_dataset =pd.read_csv('train.csv')
# head of dataset
titanic_dataset.head()
# conditioning plot on the basis of categorical variables
sns.lmplot(x='Age', y ='Fare',hue='Survived', col ='Sex',data=titanic_dataset)
sns.lmplot(x='Age', y ='Fare',hue='Survived', col ='Pclass',data=titanic_dataset)
# conditioning plot on the basis of continuous variables
df1, df2 = titanic_dataset.loc[titanic_dataset['Age'] < 20 ] ,
titanic_dataset.loc[titanic_dataset['Age'] >= 20 ]
lm = sns.lmplot(x='Parch', y ='Fare',hue='Survived',data=df1)
ax1 =lm.axes
ax1=plt.gca()
ax1.set_title('Age < 20')
lm_2 = sns.lmplot(x='Parch', y ='Fare',hue='Survived',data=df2)
ax2 =lm_2.axes
ax2=plt.gca()
ax2.set_title('Age >= 20')
参考:
- NIST手册