龙空技术网

《一天一图学Python可视化》|第5天:高级散点图,洞察变量关系

老Q爱折腾 1592

前言:

目前我们对“散点图python”大致比较重视,小伙伴们都需要学习一些“散点图python”的相关知识。那么小编同时在网络上收集了一些关于“散点图python””的相关知识,希望咱们能喜欢,咱们一起来学习一下吧!

关于散点图,我们再熟悉不过了。但是大部分人只会简单地对x轴和y轴各赋一个变量,然后观察这两个变量之间的关系。

随着大数据时代的到来,我们越来越倾向于拥有高维度的数据。比如说,我们可能想了解家庭年收入与生育率之间的关系。但是,仅仅得到这两个变量间的关系,很可能无法满足我们的需求,比如说,我们还想要知道额外的一些变量对他们之间的关系有什么影响,比如家中老人数量、城市发展水平等。

为什么我们需要观察这些额外变量带来的影响呢?这是因为任何一个行业,在红利期或者说高速发展期,即使我们粗放、野蛮地生长,也能发展得不错;但是一旦红利褪去,行业陷入增长瓶颈,精细化增长就势在必行。而精细化增长的基础,就是精细化数据分析。我们必须从各个维度深入理解数据,才有可能提出行之有效的增长方案。

那么今天,我们就来看一下,如何更高级、更高效地使用散点图来表现高维度数据中的变量关系。

想要学习更多可视化知识的话,可以到我的历史文章中查阅更多分享,比如《从零开始学Python可视化》系列、《7天学会Python最佳可视化工具Seaborn》系列、《一天一图学Python可视化》系列等。同时我还会分享许多关于爬虫、数据分析与挖掘、机器学习等的知识,欢迎感兴趣的同学关注我!

老规矩,我们先看代码和图形效果。

import seaborn as snssns.set(style="white")## 导入数据集mpg = sns.load_dataset("mpg")## 绘制每加仑里程与马力之间的关系sns.relplot(x="horsepower", y="mpg", hue="origin", size="weight", sizes=(40, 400), alpha=.5, palette="muted", height=6, data=mpg);

看起来,这次的代码不太长哦!这就是seaborn的强大之处,短短几行,增加几个参数后就可以展示丰富的信息,强烈建议大家掌握seaborn的使用!

我们有必要先了解下"mpg"数据集,这是一个关于汽车的数据集,它包含了多种车型的各种表现数据,比如每加仑里程、马力、车重等,具体大家可以看下边这些示例数据:

我们看到,在这张散点图中,我们展示了汽车马力和每加仑汽油行驶里程(之后简称每加仑里程)之间的关系,同时,我们用颜色区分了不同的产地、用散点大小区分了车重。这样,我们轻易就可以发现如下趋势:

马力越大,每加仑里程就越低;日本与欧洲生产的车比较省油,美国产的车则比较费油;日本与欧洲生产的车车身较轻,美国产的车则车身较重;这些车要么省油、要么马力大,几乎没有既不省油马力又小的车,也不存在马力超群同时还非常省油的车。

看起来还真是鱼与熊掌不可兼得啊。不过我好像看到了有一辆日产汽车出现在散点群右上的位置,妥妥的C位啊!从图中来看,这辆车每加仑里程大于30,马力大于125,那我们就来看看这是哪辆车:

mpg.query('(horsepower>125) & (mpg>30)')

输出为:

datsun 280-zx,这是什么车?原谅我不太懂车(因为没钱,所以不配……),懂行的朋友可以留言讲解下。

虽然这些车的年代可能比较久远了,但是看到没有,我们一瞬间就找到了C位车,综合了性能与油耗的最佳车!看来学好数据分析与数据可视化,还能治好我们的选择困难症呢!

那么接下来,我们就复盘一下,看看这么强大的图形是如何绘制出来的。

第一步,我们导入了seaborn,并且设置绘制风格为纯白背景。

第二步,我们导入了"mpg"数据集。

第三步,我们使用relplot绘制了一幅美观的散点图。我们在《7天学会Python最佳可视化工具Seaborn》系列中有讲解relplot()的详细用法,忘记了的同学可以复习一下。在这里,我们使用x / y指定了行变量和列变量的名称,使用hue="origin"来使得不同的产地以不同的颜色来展示,使用size="weight"来用车重控制散点大小,使用sizes=(40, 400)来控制散点大小范围,使用alpha=0.5来控制散点半透明,使用palette="muted"来选择调色板(控制hue变量不同水平的颜色),然后我们用height=6指定了图形高度,最后data=mpg用于指定数据集,这里数据集是pandas DataFrame格式。

好,简单的几行代码,我们就实现了一幅高效、美观的图形的绘制,你学会了吗?

标签: #散点图python