seaborn绘制双变量联合分布图示例详解

Malinda ·
更新时间:2024-11-13
· 1949 次阅读

目录

绘制双变量联合分布图

散点图

蜂巢图

密度图

绘制双变量联合分布图

有时我们不仅需要查看单个变量的分 布,同时也需要查看变量之间的联系, 往往还需要进行预测等。这时就需要用到双变量联合分布了。

下面我们一起来看一下连续数值型数据双变量之间的可视化方法。

在Seaborn中绘制连续数值型双变量我们使用sns.jointplot():

说明文档:https://seaborn.pydata.org/generated/seaborn.jointplot.html

seaborn.jointplot(x, y, data=None, kind='scatter')

x、y:分别记录x轴和y轴的数据名称。

data:数据集,data的数据类型为DataFrame

kind:用于设置图像的类型,可选的类型有: 'scatter' | 'reg' | 'resid' | 'kde' | 'hex',分别表示散点图、回归图、残差图、 核密度图和蜂巢图。

散点图

如果我们希望看一看数据中两个变量在二维平面上之间的关系时, 则可以使用散点图,因为散点图可以帮助我们很容易地发现一些数据的分布规律。

import numpy as np import seaborn as sns import pandas as pd import matplotlib.pyplot as plt df =pd.DataFrame({'x':np.random.normal(size=500), 'y':np.random.normal(size=500)}) sns.jointplot(x='x',y='y',data=df,kind='reg') plt.show()

双变量散点图:

根据结果我们发现, sns.jointplot()函数可以显示两个变量之间的联合关系以及每个单变量的分布

我们把函数中的 kind 参数设置为'reg' 就可以做一些简单的线性模型拟合

并且在坐标系的上方和右侧分别绘制了两个变量的直方图和核密度图。

蜂巢图

上面我们根据数据绘制了联合散点图,但是你会发 现两个数据并没有明确的线性关系,并且散点图有 一个问题,就是相同的点会覆盖在一起,导致我们 看不出来浓密和稀疏。 所以我们可以使用蜂巢图查看一下数据的分布情况。

蜂巢图的绘制还是使用seaborn.jointplot()函 数,只是将kind参数更该为hex即可。

import numpy as np import seaborn as sns import pandas as pd import matplotlib.pyplot as plt df =pd.DataFrame({'x':np.random.normal(size=500), 'y':np.random.normal(size=500)}) sns.jointplot(x='x',y='y',data=df,kind='hex') plt.show()

蜂巢图中每个六边形表示一个范围, 用颜色表示这个范围内的数据量,颜 色越白的地方数据量越小,颜色越深 的地方表示数据量越大。 当数据比较大的时候该种方式,更容易找出数据的分布情况。

密度图

在单变量分析的时候,我们绘制了单变量的概率密度曲线, 在双变量中我们也可以使用密度图来分析数据的分布情况。 密度图的绘制还是使用seaborn.jointplot()函数,只是将 kind参数更该为kde即可。

import numpy as np import seaborn as sns import pandas as pd import matplotlib.pyplot as plt df =pd.DataFrame({'x':np.random.normal(size=500), 'y':np.random.normal(size=500)}) sns.jointplot(x='x',y='y',data=df,kind='kde') plt.show()

根据图形可以看出,双变量密度图是使用一些封闭 但是不规则的曲线来表示, 数据密度越高的地方颜色越深,数据密度越低的地方颜色越浅。

g = sns.jointplot(data=x_data, x=x, y=y) g.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6) g.plot_marginals(sns.rugplot, color="r", height=-.15, clip_on=False)

sns.jointplot( data=x_data, x=x, y=y, marker="+", s=100, marginal_kws=dict(bins=25, fill=False), )

以上就是seaborn绘制双变量联合分布图示例详解的详细内容,更多关于seaborn绘制双变量联合分布图的资料请关注软件开发网其它相关文章!



联合分布 Seaborn 示例 分布 变量

需要 登录 后方可回复, 如果你还没有账号请 注册新账号