跟着mpg案例学Seaborn之Scatter

简介: 跟着mpg案例学Seaborn之Scatter

本期,我们来介绍一下Seaborn中的Scatter(散点图),散点图是一种基础且功能强大的图表类型,它通过在二维平面上绘制点来展示两个变量之间的关系。在Seaborn中,散点图不仅能够展示变量间的相关性,还可以通过不同的颜色、大小和形状来展示额外的维度信息。Seaborn散点图的优势:1.美观的默认样式:Seaborn散点图拥有美观的默认配色方案和主题,使得图表看起来更加专业和吸引人。2.易于使用:Seaborn简化了散点图的创建过程,只需要几行代码即可生成复杂的图表。3.灵活性高:可以轻松地添加回归线、分组变量等,以增强图表的信息量。

一、mpg数据集mpg,miles per gallon即油耗,这个数据集来自卡内基梅隆大学维护的StatLib库。该数据集共计9个特征,398个样本,用于回归任务。

fe5a41350e9b1e9a54b4c610ada149f8.png

数据集中的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()


50c07ebecf3c3a4064a7b81d6b442402.png

二、汽车重量与马力之间的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('汽车的马力')


4a456ec65f6bd779285ba1a8959cd322.png

从图中,我们可以看到汽车重量越大,马力越大。

三、不同产地的汽车重量与马力之间的Scatter图

#加一个产地看看数据集中 不同国家的汽车分布情况sns.scatterplot(data=df, x='weight', y='horsepower', s=150, alpha=0.7,               hue='origin', palette='deep')plt.title('不同产地的汽车重量与马力的散点关系图')plt.xlabel('汽车重量')plt.ylabel('汽车的马力')

64d199161249ba0800bbc3b12406d6c5.png

从图中可以看到,日系车的汽车重量普遍偏轻,马力较小;欧洲车的重量稍大;而美国汽车重量和马力涵盖范围最大。

四、不同产地、不同气缸数量的汽车重量与马力的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('汽车的马力')


b2ea9cbedb20c9d00b8177774e1f4c12.png

从图中,我们可以看到,大马力、气缸数量多的汽车集中在美国汽车中,小马力、气缸数量少的汽车集中在日系、欧洲汽车中。

五、美化标签

我们将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('汽车的马力')

d29df74af1fae2b7fb5ac6097a182969.png

跟上面的图相比,这个加上美化标签的图更直观清晰。

六、加一个回归线

我们可以通过lmplot画出Scatter图的回归线。

#添加一条回归线sns.lmplot(x='weight', y='horsepower', data=df, aspect=2)

7d7f13022d1b7ab92f7e019bab201d8e.png

七、总结

本期,我们介绍了Seaborn中的散点图(Scatter),散点图具有很强的使用场景。比如在如下场景中非常适用:

  • 关系评估:散点图有助于确定两个连续变量之间的关系性质。
  • 异常值识别:散点图可以突出显示异常值,即那些显著偏离整体模式的数据点。
  • 聚类和分组:通过视觉检查点的分布,你可以识别变量之间是否存在自然的分组或模式。
  • 趋势分析:通过按时间顺序绘制数据点,散点图可以描绘变量的演变或进展,帮助识别趋势或行为变化。
  • 相关性分析:可以从散点图中观察到统计度量,如相关系数。它可以揭示是否存在正相关(两个变量同时增加或减少)、负相关(一个变量增加而另一个减少)或无相关性(没有明显关系)。
  • 模型验证:通过比较模型的预测值与实际值,散点图可以可视化模型预测的准确性或偏差。

自己动手试试吧?当然想要学习更多关于Scatter的相关知识,请参考官方文档:

https://seaborn.pydata.org/generated/seaborn.scatterplot.html

相关文章
|
5天前
|
数据采集 前端开发 NoSQL
Python编程异步爬虫实战案例
Python编程异步爬虫实战案例
15 2
|
5天前
|
数据采集 自然语言处理 API
Python反爬案例——验证码的识别
Python反爬案例——验证码的识别
14 2
|
6天前
|
iOS开发 MacOS Python
Python编程小案例—利用flask查询本机IP归属并输出网页图片
Python编程小案例—利用flask查询本机IP归属并输出网页图片
13 1
|
8天前
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
18 2
|
2天前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
10 0
|
6天前
|
人工智能 API iOS开发
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
17 0
|
6天前
|
人工智能 小程序 Python
Python编程小案例——编一个事件提醒弹窗小程序
Python编程小案例——编一个事件提醒弹窗小程序
10 0
|
5月前
|
数据采集 JSON JavaScript
Python爬虫案例:抓取猫眼电影排行榜
python爬取猫眼电影排行榜数据分析,实战。(正则表达式,xpath,beautifulsoup)【2月更文挑战第11天】
237 2
Python爬虫案例:抓取猫眼电影排行榜
|
4月前
|
数据采集 前端开发 Java
Python简单爬虫案例
用pyhton从网页中爬取数据,是比较常用的爬虫方式。网页一般由html编写,里面包含大量的标签,我们所需的内容都包含在这些标签之中,除了对python的基础语法有了解之外,还要对html的结构以及标签选择有简单的认知,下面就用爬取fl小说网的案例带大家进入爬虫的世界。
|
4月前
|
数据采集 前端开发 Java
Python简单爬虫案例
用pyhton从网页中爬取数据,是比较常用的爬虫方式。网页一般由html编写,里面包含大量的标签,我们所需的内容都包含在这些标签之中,除了对python的基础语法有了解之外,还要对html的结构以及标签选择有简单的认知,下面就用爬取fl小说网的案例带大家进入爬虫的世界。