1、绘制热力图
热力图可用于了解数据集中的变量间是否存在相关关系,分类散点图可以将分类变量的每个级别显示出来,回归拟合图可以判断变量间是否具有相互依赖的定量关系。
热力图(Heat Map)通过颜色的深浅表示数据的分布,颜色越浅数据越大,读者可以从中一眼就分辨出数据的分布情况,非常方便。
在seaborn库中,可以使用heatmap函数绘制热力图。heatmap函数的基本使用格式如下。
seaborn.heatmap(data,vmin=None,vmax=None,cmap=None,center=None,robust=False annot=None,fmt='.2g',annot kws=None,linewidths=0,linecolor=' white ',cbar=Truer cbar_kws=None,cbar ax=None,square=False,xticklabels=' auto ',yticklabels=' auto ' mask=None,ax=None,**kwargs)
heatmap函数的主要参数及说明如表1-1所示
表1-1 heatmap函数的主要参数及说明
参数名称 | 参数说明 |
---|---|
data | 接收可转换为ndarray的二维矩阵数据集。表示用于绘图的数据集。无默认值 |
vmin,vmax | 接收float。表示颜色映射的值的范围。默认为None |
cmap | 接收颜色映射或颜色列表。表示数值到颜色空间的映射。默认为None |
center | 接收float。表示以0为中心发散颜色。默认为None |
robust | 接收bool。如果为True且vmin参数或vmax参数为None,则使用分位数表示映射范围。默认为False |
annot | 接收bool或矩阵数据集。表示是否在每个单元格中显示数值。默认为None |
fmt | 接收str。表示添加注释时使用的字符串格式代码。默认为.2g |
linewidths | 接收float。表示划分每个单元格的线宽。默认为0 |
linecolor | 接收str。表示划分每个单元格的线条颜色。默认为white |
square | 接收bool。表示是否使每个单元格为方形。默认为Falsel |
波士顿房价数据的特征说明如下图所示。
基于上图的波士顿房价数据的特征绘制热力图,代码下方所示。
引入需要的库
读取文件
由上图代码的运行结果可知波士顿房价数据中各变量之间的相关关系,而图中最右侧示例线条的作用是量化特征之间的相关性。以0为分界点,数值越接近1,则正相关性越强,0.00632颜色就越浅;反之,数值越接近-1,则负相关性越强,颜色就越深。
为了更加清楚地显示出数据特点,可以添加数据标记,即设置参数annot=True,辅助18.0增强显示效果,如上图代码所示。
由上图代码的运行结果可知,为热力图添加数据标记,可以更清晰地观察到不同变量之间的相关性大小。
2.绘制线性回归拟合图
线性回归拟合图(Linear FitChart)可以对具有一定数值关系的两个一维数据进行数值展示并找出一条最佳的拟合直线,通过回归确定两个变量之间的线性关系,观察其关联性。
在seaborn库中,可以使用regplot函数绘制线性回归拟合图。regplot函数的基本使用格式如下。
seaborn.regplot(*,x=None, y=None, data=None, xestimator=None, x bins=None, x ci='ci', scatter=True, fit reg=True, ci=95, n boot=1000, units=None,seed=None, order=1,logistic=False, lowess=False, robust=False, logx=False, x partial=None, y_partial=None,
truncate=True,
color=None, marker='( dropna=True, x jitter=None, y jitter=None,
label=None, ", scatter kws=None, line kws=None, ax=None)
regplot函数的主要参数及说明如表1-2所示。
表1-2 regplot函数的主要参数及其说明
参数名称 | 参数说明 |
x, y | 接收 array、str、Series。表示输入变量、字符串应该是data参数中对应的列名,使用Series将会在轴上显示名称。默认为None |
data | 接收DataFrame。表示传入的数据,列为特征。默认为None |
x_estimator | 接收可调用的映射向量。表示应用于每一个x值并绘制估计图形,如果输入x_ci,那么将会绘制一个置信区间。默认为None |
x_ci | 接收str、0~100的int。表示离散值集中趋势的置信区间大小,str的值可选ci、sd。默认为ci |
ci | 接收0~100的int。表示y轴置信区间大小。默认为95 |
scatter | 接收bool。表示是否绘制散点图。默认为True |
logistic | 接收bool。表示是否使用逻辑回归。默认为False |
lowess | 接收bool。表示是否使用局域回归。默认为False |
robust | 接收bool。表示是否使用稳定回归。默认为False |
logx | 接收bool。表示是否使用对数回归。默认为False |
X_jitter、y_jitter | 接收float。表示将均匀随机噪声添加到x或y变量中,只改变图形外观。默认为None |
基于波士顿房价数据,利用regplot 函数绘制修改置信区间参数ci前后的线性回归拟合图,代码如下图所示。
修改置信区间参数ci前后的线性回归拟合图对比
由上图代码的运行结果可知,房间数和房屋价格有线性相关关系。其中,修改置信区
间参数ci前后得到的线性回归拟合图基本一致,准确度也基本相同。
3、回执分类散点图
分类散点图(Categorical Scatterplot)的某一维表示分类,另一维为每一类中分布的数值,分类散点图可以用于表示各类别的分布情况。读者可使用stripplot函数和swarmplot函数绘制分类散点图,不同的函数的作用有所不同,具体的介绍如下。
(1)stripplot函数
使用stripplot函数绘制分类散点图,是显示分类变量级别中某些定量变量的值的一种简单方法。分类散点图可以单独显示,但是有时候也可以作为其他分类图的辅助图,用干显示所有的观察结果和数据的基本分布。stripplot函数的基本使用格式如下。
seaborn.stripplot(x=None,y=None,hue=None,data=None,order=None,hue order=None,jitter=True,dodge-False,orient=None,color=None,palette=None,size=5,edgecolor=' gray ',linewidth=0,ax=None,**kwargs)
stripplot函数接收多种数据,包括NumPy数组、数据框、序列等。当使用数据框和序列时,会添加相关联的名称到坐标轴标签上。
stripplot函数的部分参数及说明如表1-3所示。
表1-3 stripplot函数的部分参数及说明
参数名称 | 参数说明 |
x,y,hue | 接收 data中的变量。表示选入的绘图变量,hue接收分类变量,以颜色分类。默认为None |
data | 接收DataFrame、array、list、Series。表示用于绘图的数据集。默认为None |
order,hue_order | 接收str、list。表示指定绘图分类级别。默认为None |
jitter | 接收 float、True、1。表示添加均匀随机噪声(仅改变图形)以优化图形显示。默认为True |
dodge | 接收bool。表示当使用分类嵌套时变量是否沿着分类轴分离。默认为False |
orient | 接收str。表示图形的方向,可选v、h。默认为None |
基于上图的人员离职率数据,绘制简单水平分类散点图分析销售部已离职的员工每月平均工作时长。
读取文件
由下列的代码的运行结果可知,在销售部已离职的员工中,员工每个月平均工作时长大致集中在两个时间段,分别是125~165小时和210~250小时,其中,在210~250小时时间段中离职的员工相对较多,可能是受加班时长的影响。
通过分类变量对条带进行分组,并对比展示添加随机噪声抖动后的图形。如下图所示
通过对比的运行结果可知,添加随机噪声与不添加随机噪声的图形不一致,没有添加噪声的图形相对较平滑。
绘制不会有重叠的分类散点图swarmplot
由于所有样本的点在这个图中都不会重叠,所以,如果点的直径太大,那么会有部分点无法在图中显示
一般来说,分类散点图,看第一种会重叠的就可以了(stripplot),因为实际并不需要看到具体每个样本的情况。