seaborn绘制双变量联合分布图示例详解
作者:纯纯子 发布时间:2021-04-29 01:49:24
绘制双变量联合分布图
有时我们不仅需要查看单个变量的分 布,同时也需要查看变量之间的联系, 往往还需要进行预测等。这时就需要用到双变量联合分布了。
下面我们一起来看一下连续数值型数据双变量之间的可视化方法。
在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),
)
来源:https://juejin.cn/post/7180599580793241660


猜你喜欢
- 背景介绍PyTorch 训练的模型,需要在Jetson nano 上部署,jetson 原生提供了TensorRT 的支持,所以一个比较好的
- 基于微信可以做很多有意思的练手项目,看了这张速查表你就会发现,可以做的事情超过你的想象。有一次我想要统计微信群里哪些同学在北京,但发现直接问
- 本文整理了关于Javascript表单验证的所有涉及到的,大家仔细阅读一定会有所收获的 //验证字符串非空 var Validat
- 如果开发者想在一个特定的应用程序中完全控制消息与事件的发送,只需要使用一个默认的"/"命名空间就足够了.但是如果开发者需
- 在实际开发中经常会遇到计算某个字段的排名的情况如下表:totak_sales现在又如此要求:按sales的逆序排序,要求添加一个sales_
- import urllib, httplib import utils import json &nbs
- 一.简介发展由来:随着信息技术的发展和硬件设备成本的降低,当今的互联网存在海量的数据,要想快速从这些数据中获取更多有效的信息,数据可视化是重
- 正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的
- 常用目标检测模型基本都是读取的PASCAL VOC格式的标签,下面代码用于生成VOC格式的代码,根据需要修改即可:from lxml imp
- 工作中需要从一个数据库中的表GIS_WEICHAI_DATA_1S中的数据导入到另个一数据库的表GIS_WEICHAI_DATA_1S中,数
- 最近接到一个领导需求,将xmind脑图直接转成可以导入的excel用例,并且转换成gui可执行的exe文件,方便他人使用。因为对Python
- 简介Python中布尔值(Booleans)表示以下两个值之一:True或False。布尔值在编程中,通常需要知道表达式是 True 还是
- 前言:本文研究的主要是Python实现pig Latin小游戏的简单代码,具体介绍如下。Pig Latin是一个语言游戏。步骤:1.让用户输
- MySQL出错代码列表:1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库
- 名称:YUI Compressor最新版本:2.4.2用途:js/css压缩必备指数:使用难度:(YUI Compressor非常易用,只是
- ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作
- 总体思路与一元线性回归思想一样,现在将数据以矩阵形式进行运算,更加方便。 一元线性回归实现代码下面是多元线性回归用Python实现的代码:i
- 首先谈谈它们的共同点吧:它们本质上都是一种对资源的独占锁定,都是由并发引起(如果数据库只有一个session,就谈不上锁定)。接着着重谈谈它
- 我写的这个程序import tensorflow as tfsess=tf.InteractiveSession()x=tf.Variabl
- 效果如下所示:# -*- coding: utf-8 -*-import turtle# 绘制太极图函数def draw_TJT(R):&n