本期,我们来介绍一下Seaborn中的Scatter(散点图),散点图是一种基础且功能强大的图表类型,它通过在二维平面上绘制点来展示两个变量之间的关系。在Seaborn中,散点图不仅能够展示变量间的相关性,还可以通过不同的颜色、大小和形状来展示额外的维度信息。Seaborn散点图的优势:1.美观的默认样式:Seaborn散点图拥有美观的默认配色方案和主题,使得图表看起来更加专业和吸引人。2.易于使用:Seaborn简化了散点图的创建过程,只需要几行代码即可生成复杂的图表。3.灵活性高:可以轻松地添加回归线、分组变量等,以增强图表的信息量。
一、mpg数据集mpg,miles per gallon即油耗,这个数据集来自卡内基梅隆大学维护的StatLib库。该数据集共计9个特征,398个样本,用于回归任务。
数据集中的9个特征名分别为:
mpg:油耗, miles per galloncylinders:气缸数量displacement:排气量/排量horsepower:马力weight:重量acceleration:加速度model year:出厂时间origin:产地name:车品牌
数据集的链接为:
通过百度网盘分享的文件:mpg.csv链接:https://pan.baidu.com/s/1yIwnNrg3Rhf3wL0uwXGpdA提取码:6666
导入数据集,发现horsepower列中有6个缺失值,我们用以下命令来补充缺失值:
#补充缺失值df['horsepower']=df['horsepower'].fillna(df['horsepower'].median())df.isnull().sum()
二、汽车重量与马力之间的Scatter图
我们用Seaborn中的scatter来画一下数据集中汽车重量(weight)与马力(horsepower)之间的关系图。
#汽车重量与马力之间的关系sns.scatterplot(data=df, x='weight', y='horsepower', palette='deep', s=150, alpha=0.7)plt.title('汽车重量与马力的散点关系图')plt.xlabel('汽车重量')plt.ylabel('汽车的马力')
从图中,我们可以看到汽车重量越大,马力越大。
三、不同产地的汽车重量与马力之间的Scatter图
#加一个产地看看数据集中 不同国家的汽车分布情况sns.scatterplot(data=df, x='weight', y='horsepower', s=150, alpha=0.7, hue='origin', palette='deep')plt.title('不同产地的汽车重量与马力的散点关系图')plt.xlabel('汽车重量')plt.ylabel('汽车的马力')
从图中可以看到,日系车的汽车重量普遍偏轻,马力较小;欧洲车的重量稍大;而美国汽车重量和马力涵盖范围最大。
四、不同产地、不同气缸数量的汽车重量与马力的Scatter图
我们把气缸数量这个参数也放到Scatter图中。
# 加个气缸数量的图sns.scatterplot(data=df, x='weight', y='horsepower', sizes=(40, 400), alpha=0.8, palette='deep', hue='origin', size='cylinders')plt.title('不同产地、不同气缸数量的汽车重量与马力的散点关系图')plt.xlabel('汽车重量')plt.ylabel('汽车的马力')
从图中,我们可以看到,大马力、气缸数量多的汽车集中在美国汽车中,小马力、气缸数量少的汽车集中在日系、欧洲汽车中。
五、美化标签
我们将origin(汽车产地)这一列变成Scatter中的style看看。
# 美化加markersns.scatterplot(data=df, x='weight', y='horsepower', s=150, alpha=0.7, style='origin',palette='deep', hue='origin')plt.title('不同产地的汽车重量与马力的散点关系图-美化标签')plt.xlabel('汽车重量')plt.ylabel('汽车的马力')
跟上面的图相比,这个加上美化标签的图更直观清晰。
六、加一个回归线
我们可以通过lmplot画出Scatter图的回归线。
#添加一条回归线sns.lmplot(x='weight', y='horsepower', data=df, aspect=2)
七、总结
本期,我们介绍了Seaborn中的散点图(Scatter),散点图具有很强的使用场景。比如在如下场景中非常适用:
- 关系评估:散点图有助于确定两个连续变量之间的关系性质。
- 异常值识别:散点图可以突出显示异常值,即那些显著偏离整体模式的数据点。
- 聚类和分组:通过视觉检查点的分布,你可以识别变量之间是否存在自然的分组或模式。
- 趋势分析:通过按时间顺序绘制数据点,散点图可以描绘变量的演变或进展,帮助识别趋势或行为变化。
- 相关性分析:可以从散点图中观察到统计度量,如相关系数。它可以揭示是否存在正相关(两个变量同时增加或减少)、负相关(一个变量增加而另一个减少)或无相关性(没有明显关系)。
- 模型验证:通过比较模型的预测值与实际值,散点图可以可视化模型预测的准确性或偏差。
自己动手试试吧?当然想要学习更多关于Scatter的相关知识,请参考官方文档:
https://seaborn.pydata.org/generated/seaborn.scatterplot.html