本期,我们继续跟着penguins案例来学习Seaborn中的Pairplot。Seaborn的Pairplot函数是一个非常有用的工具,用于绘制数据集中所有数值型变量之间的关系。它会为每对变量生成一个散点图,并在对角线上绘制每个变量的单变量分布图(通常是直方图或核密度估计图)。pairplot 是探索数据集中变量间关系的快速方法,尤其适用于初步了解数据集的结构。一、penguins数据集Palmer Penguins 数据集是近年来在数据科学和机器学习领域受到关注的一个数据集,经常被用作iris鸢尾花数据集的一个替代品。数据集包含了对南极洲不同地区生活的企鹅种群的研究数据,主要用于数据探索和可视化,以及分类任务。
数据集中各列的具体含义为:
英文字段名 | 中文 | 描述 |
species | 种类 | Gentoo:巴布亚企鹅(也叫金图企鹅);Adelie:阿德利企鹅;Chinstrap:帽带企鹅 |
culmen_length_mm | 喙长(毫米) | 喙的长度(毫米) |
culmen_depth_mm | 喙深(毫米) | 喙的深度(毫米) |
flipper_length_mm | 脚蹼长度(毫米) | 脚蹼的长度(毫米) |
body_mass_g | 体重(克) | 体重(克) |
island | 岛屿名称 | 梦想岛、托尔格森岛、比斯科岛 |
sex | 性别 | 企鹅的性别 |
该下载数据集的链接为:
通过百度网盘分享的文件:penguins.csv
链接:https://pan.baidu.com/s/1ttlYRHDpUhtNTnsPBeYAAQ
提取码:6666
二、数据清洗看看数据集中数据缺失情况:
df.isnull().sum()
有5列中数据存在缺失值,下面我们通过语句补充完善。
#补充缺失值df['bill_length_mm']=df['bill_length_mm'].fillna(df['bill_length_mm'].median())df['bill_depth_mm']=df['bill_depth_mm'].fillna(df['bill_depth_mm'].median())df['flipper_length_mm']=df['flipper_length_mm'].fillna(df['flipper_length_mm'].median())df['body_mass_g']=df['body_mass_g'].fillna(df['body_mass_g'].median())df['sex']=df['sex'].fillna('MALE')df.isnull().sum()
三、数据集的pairplot图
我们通过pairplot先看看整体数据集的情况。
#简单的Pairplotsns.pairplot(data=df, corner=True);
从图中,我们可以看出数据集中,所有特征之间存在正相关,同时,许多图表显示不同的数据集群表示了不同的物种。当然,如果我们用species来分类看,差异会更加明显(下图)。
# Pairplot with huessns.pairplot(data=df, hue='species');
从pairplot图中可以看到,Gentoo(绿色区域的)的body_mass(体重)和 flipper_length(脚蹼长度)要高得多,而它的bill_depth(喙深度)比其他2个物种要小。
四、一些参数
pairplot 提供了多种自定义选项,例如:
- hue 参数可以根据另一个分类变量对散点图进行着色。
- palette 参数可以设置颜色方案。
- diag_kind 参数可以改变对角线上的图表类型,比如使用 'hist'、'kde' 或 'reg'。
- kind 参数可以设置非对角线上的图表类型,如'scatter'、'reg'、'resid'、'kde' 或 'hex'。
- 比如,我们设置一下上图中的非对角线的图标类型为reg。
- 是不是给每个scatter图都增加了几条回归线?~~
- 五、总结
Seaborn中的pairplot是一个非常强大的工具,可以帮助你快速了解数据集中的变量间关系,尤其是它们的分布和相关性,识别变量之间的相关性或模式,例如:线性或非线性关系、聚类或异常值等。
当然,想要了解更多关于Pairplot的功能,请参考官方文档:
https://seaborn.pydata.org/generated/seaborn.pairplot.html
自己动手试试吧?