jointplot快速探究两组变量的分布及关系
时间:2022-07-27
本文章向大家介绍jointplot快速探究两组变量的分布及关系,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在seaborn中,jointplot函数提供了一种综合的可视化方案,可以同时绘制两组变量的散点图以及各自对应的直方图,基本用法如下
>>> import matplotlib.pyplot as plt
>>> import seaborn as sns
>>> import pandas as pd
>>> df = pd.read_csv("penguins.csv")
>>> sns.jointplot(data=df, x='bill_length_mm', y='bill_depth_mm')
<seaborn.axisgrid.JointGrid object at 0x10108D90>
>>> plt.show()
输出结果如下
除了这种基本的展示形式外,我们还可以通过kind参数来调整可视化形式。下面来详细看下不同取值下的可视化形式
1. reg
用法如下
>>> sns.jointplot(data=df, x='bill_length_mm', y='bill_depth_mm', kind='reg')
>>> plt.show()
输出结果如下
2. hist
用法如下
>>> sns.jointplot(data=df, x='bill_length_mm', y='bill_depth_mm', kind='hist')
>>> plt.show()
输出结果如下
3. kde
用法如下
>>> sns.jointplot(data=df, x='bill_length_mm', y='bill_depth_mm', kind='kde')
>>> plt.show()
输出结果如下
4. hex
用法如下
>>> sns.jointplot(data=df, x='bill_length_mm', y='bill_depth_mm', kind='hex')
>>> plt.show()
输出结果如下
5. resid
用法如下
>>> sns.jointplot(data=df, x='bill_length_mm', y='bill_depth_mm', kind='resid')
>>> plt.show()
输出结果如下
在此基础上,我们可以通过两个函数来进一步丰富可视化形式,用法如下
>>> g = sns.jointplot(data=df, x='bill_length_mm', y='bill_depth_mm')
>>> g.plot_joint(sns.rugplot, color='r')
>>> g.plot_marginals(sns.histplot, kde=True)
>>> plt.show()
输出结果如下
plot_joint函数用于指定x和y相互关系的可视化形式,plot_marginals函数用于指定x和y变量各自分布的可视化形式。结合jointplot一起使用时,是在已有可视化元素的基础上进行添加,可以通过zorder等参数指定优先级。
jointplot提供了简便的借口供我们使用,如果要追求灵活性的话,可以通过JointGrid函数来实现同样的效果,用法如下
>>> g = sns.JointGrid(data=df, x='bill_length_mm', y='bill_depth_mm')
>>> g.plot(sns.scatterplot, sns.histplot)
>>> plt.show()
输出结果如下
其实JointGrid的用法非常灵活,以下三种写法的效果是等价的
# 第一种
>>> g = sns.JointGrid(data=df, x='bill_length_mm', y='bill_depth_mm')
>>> g.plot(sns.scatterplot, sns.boxplot)
>>> plt.show()
# 第二种
>>> g = sns.JointGrid(data=df, x='bill_length_mm', y='bill_depth_mm')
>>> g.plot_joint(sns.scatterplot)
>>> g.plot_marginals(sns.boxplot)
>>> plt.show()
# 第三种
>>> g = sns.JointGrid()
>>> sns.scatterplot(x=df['bill_length_mm'], y=df['bill_depth_mm'], ax=g.ax_joint)
>>> sns.boxplot(x=df['bill_length_mm'], ax=g.ax_marg_x)
>>> sns.boxplot(y=df['bill_depth_mm'], ax=g.ax_marg_y)
>>> plt.show()
输出结果如下
第三种写法分别指定每个axes的绘图函数以及参数,提供了最大程度的灵活性,可以将其设定为不同的可视化形式,用法如下
>>> g = sns.JointGrid()
>>> sns.scatterplot(x=df['bill_length_mm'], y=df['bill_depth_mm'], ax=g.ax_joint)
>>> sns.histplot(x=df['bill_length_mm'], ax=g.ax_marg_x)
>>> sns.boxplot(y=df['bill_depth_mm'], ax=g.ax_marg_y)
>>> plt.show()
输出结果如下
jointplot以及可以基本的使用需求,如果要追求灵活性,推进使用JointGrid。
- jupyter notebook 在mac OS上的安装
- Hadoop(七)HDFS容错机制详解
- java一些常用并发工具示例
- 机器人来“抢工作”了,瑞典人为何能淡定处之
- 线性代数01 线性的大脑
- spring cloud 学习(10) - 利用springfox集成swagger
- Hadoop(六)之HDFS的存储原理(运行原理)
- Blockchain Global CEO Sam Lee:以大数据为基础,区块链技术加快决策生成速度
- Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群
- 被解放的姜戈08 远走高飞
- mxnet安装及NDArray初体验
- MySQL(十五)之数据备份中mysqldump详解
- 安卓第十夜 亚当的诞生
- MySQL(十四)之数据备份与还原
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 万字详述 MySQL ProxySQL
- 在SAP WebClient UI里使用AJAX进行异步数据读取
- Angular Component TypeScript代码和最后转换生成的JavaScript代码比较
- 如何使用Angular FormBuilder
- Angular HTML template的解析位置
- Angular FormBuilder的工作原理
- Angular HTTPClient的使用方法
- nodejs错误:PayloadTooLargeError: request entity too large
- 富文本编辑器 tinymce 的使用
- dotnet core 在 MAC 系统下删除应用程序自己后调 Process Start 方法将会抛出 Win32 异常
- 如何从高德获取地铁数据
- Yaconf - windows 环境下的高性能配置操作
- [ 物联网篇 ] 26 -ALSA Plug 中 multi 的应用
- LeetCode 1546. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target(动态规划)
- HTML加载顺序