本期,我们继续来跟着案例学Seaborn之Jointplot。Jointplot 是 seaborn 中用于展示两个变量之间关系的图表,它的中心图通常是散点图(scatter plot)或六边形图(hexbin plot),表示两个变量的联合分布。此主图还附有沿轴(直方图Histogram或核密度估计KDE)的附加图,这些图分别显示每个变量的分布。一、案例学习
我们还是采用mpg案例来进行学习:
我们用Jointplot来分析展示一下mpg(油耗)与displacement(排气量/排量)的关系图。
sns.jointplot(x="mpg", y="displacement", data=df, height=5, kind='hex', ratio=2, marginal_ticks=True);
我们可以从Jointplot图中观察到mpg(油耗)和displacement(排气量/排量)之间存在很强的负相关。我们再来用Jointplot看一下horsepower(马力)与accelaration(加速度)之间的关系。
sns.jointplot(x="horsepower", y="acceleration", data=df, hue="origin", height=5, ratio=2, marginal_ticks=True);
从图中,我们可以看到大多数大马力汽车来自美国。此外,horsepower(马力)和acceleration(加速度)之间存在很强的负相关。
二、一些参数设置
jointplot 还有很多可定制的选项,例如:
- kind 参数可以设置为 'scatter', 'reg', 'resid', 'kde', 或 'hex' 来改变主图的类型。
- 可以通过 marginal_kws 参数传递额外的参数给边缘图。
- 可以使用 color 参数统一设置图表的颜色。
kind 参数可以取以下值:1.'scatter': 默认值。在主图中绘制散点图,显示两个变量之间的关系。上方和右侧会显示这两个变量的边缘直方图。2.'reg': 在主图中绘制散点图,并添加线性回归线。这有助于观察两个变量之间是否存在线性关系。边缘直方图仍然会被显示。3.'resid': 绘制残差散点图。这种图显示了线性回归模型的残差(即实际值与预测值之间的差异)。上方和右侧显示的是残差的直方图和核密度估计。这有助于评估回归模型的拟合情况。4.'kde': 在主图中绘制两个变量的核密度估计图。核密度估计是一种用于估计概率密度函数的方法,可以用来观察变量的分布形态。边缘部分同样显示核密度估计。5.'hex': 使用六边形图(hexbin plot)来展示两个变量的关系。这种图可以很好地处理数据点过于密集的情况,每个六边形的颜色深浅表示该区域数据点的密度。边缘部分显示的是直方图。
我们改变一下kind参数,看看其他几个类型的图形长什么样子?
#kind=scattersns.jointplot(x="mpg", y="displacement", data=df, height=5, kind='scatter', ratio=2, marginal_ticks=True);
#kind=regsns.jointplot(x="mpg", y="displacement", data=df, height=5, kind='reg', ratio=2, marginal_ticks=True);
#kind=resid'sns.jointplot(x="mpg", y="displacement", data=df, height=5, kind='resid', ratio=2, marginal_ticks=True);
#kind=resid'sns.jointplot(x="mpg", y="displacement", data=df, height=5, kind='kde', ratio=2, marginal_ticks=True);
三、总结Seaborn的Jointplot是一个非常灵活的工具,可以快速地展示和分析两个变量之间的关系。通过调整参数,你可以根据需要定制图表的外观和信息展示方式,画出漂亮的图形。当然,想要了解更多关于Jointplot的功能,请参考官方文档:
https://seaborn.pydata.org/generated/seaborn.jointplot.html