温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

seaborn如何绘制双变量联合分布图

发布时间:2022-12-27 16:47:47 来源:亿速云 阅读:155 作者:iii 栏目:开发技术

本文小编为大家详细介绍“seaborn如何绘制双变量联合分布图”,内容详细,步骤清晰,细节处理妥当,希望这篇“seaborn如何绘制双变量联合分布图”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

绘制双变量联合分布图

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

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

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

 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()

双变量散点图:

seaborn如何绘制双变量联合分布图

  • 根据结果我们发现, 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如何绘制双变量联合分布图

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

密度图

在单变量分析的时候,我们绘制了单变量的概率密度曲线, 在双变量中我们也可以使用密度图来分析数据的分布情况。 密度图的绘制还是使用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()

seaborn如何绘制双变量联合分布图

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

 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)

seaborn如何绘制双变量联合分布图

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

seaborn如何绘制双变量联合分布图

读到这里,这篇“seaborn如何绘制双变量联合分布图”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI