- Seaborn 教程
- Seaborn - 首页
- Seaborn - 简介
- Seaborn - 环境设置
- 导入数据集和库
- Seaborn - 图形美观
- Seaborn - 调色板
- Seaborn - 直方图
- Seaborn - 核密度估计
- 可视化成对关系
- Seaborn - 绘制分类数据
- 观测值的分布
- Seaborn - 统计估计
- Seaborn - 绘制宽格式数据
- 多面板分类图
- Seaborn - 线性关系
- Seaborn - Facet Grid
- Seaborn - Pair Grid
- 函数参考
- Seaborn - 函数参考
- Seaborn 有用资源
- Seaborn - 快速指南
- Seaborn - 有用资源
- Seaborn - 讨论
Seaborn.jointplot() 方法
Seaborn.jointplot() 方法用于绘制数据集中的成对关系的子图网格。此函数为 JointGrid 类提供了一个方便的界面,其中包含许多预制的绘图类型。如果您需要更大的灵活性,则应直接使用 JointGrid,因为此包装器旨在相对轻量级。
顾名思义,联合图由三个单独的图组成 - 一个双变量图,显示因变量行为与自变量行为的差异,另一个图位于双变量图上方以观察自变量的分布,另一个图位于右侧边距垂直显示因变量的分布。
语法
以下是 seaborn.jointplot() 方法的语法:
seaborn.jointplot(*, x=None, y=None, data=None, kind='scatter', color=None, height=6, ratio=5, space=0.2, dropna=False, xlim=None, ylim=None, marginal_ticks=False, joint_kws=None, marginal_kws=None, hue=None, palette=None, hue_order=None, hue_norm=None, **kwargs)
参数
seaborn.jointplot() 方法的一些参数如下。
| 序号 | 名称和描述 |
|---|---|
| 1 | 数据 接受数据框,其中每一列是一个变量,每一行是一个观测值。 |
| 2 | 色调 指定将在某些网格面上显示的数据部分的变量。要调整此变量的级别顺序,请参阅 var order 参数。 |
| 3 | 种类 从 {‘scatter’, ‘kde’, ‘hist’, ‘reg’} 中获取值,并确定要制作的绘图类型。 |
| 4 | 比率 接受数值,并确定联合轴高度与边际轴高度的比率。 |
| 5 | 高度 接受标量值,并确定面的高度。 |
| 6 | 颜色 接受 matplotlib 颜色作为输入,并确定未使用色调映射时的单一颜色规范。 |
| 7 | 边际刻度 接受布尔值,如果为 False,则抑制边际图中计数/密度轴上的刻度。 |
| 8 | 色调顺序 接受列表作为输入,并由此顺序确定分面变量的级别顺序。 |
返回值
此方法返回 JointGrid 对象,该对象管理多个子图,这些子图对应于联合轴和边际轴,用于绘制双变量关系或分布。
加载 seaborn 库
在继续开发绘图之前,让我们加载 seaborn 库和数据集。要加载或导入 seaborn 库,可以使用以下代码行。
Import seaborn as sns
加载数据集
在本文中,我们将使用 seaborn 库中内置的 Tips 数据集。以下命令用于加载数据集。
tips=sns.load_dataset("tips")
以下提到的命令用于查看数据集中前 5 行。这使我们能够了解可以使用哪些变量来绘制图形。
tips.head()
以下是上述代码段的输出。
index,total_bill,tip,sex,smoker,day,time,size 0,16.99,1.01,Female,No,Sun,Dinner,2 1,10.34,1.66,Male,No,Sun,Dinner,3 2,21.01,3.5,Male,No,Sun,Dinner,3 3,23.68,3.31,Male,No,Sun,Dinner,2 4,24.59,3.61,Female,No,Sun,Dinner,4
现在我们已经加载了数据,我们将继续绘制数据。
示例 1
在此示例中,我们将使用 tips 数据集并通过将此数据集中的数据传递给 jointplot 来绘制联合图。对于 x、y、hue 列,我们将分别传递数据集的 total_bill、tip 和 sex 列。因此获得的图如下所示。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.jointplot(data=tips, x="total_bill", y="tip",hue="sex")
plt.show()
输出
获得的图的输出如下:
示例 2
在此示例中,我们将传递 kind 参数并生成一个本质上是核密度估计的联合图。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.jointplot(data=tips, x="total_bill", y="tip",hue="sex",kind="kde")
plt.show()
输出
获得的图如下所示:
示例 3
在此示例中,我们将使用 marginal_kws 参数,这是一个额外的关键字参数,它确定在面的边距上显示的绘图类型。在下面的示例中,我们传递了 bins,这意味着将在边距上绘制指定数量 bin 的直方图,并且由于 fill 参数传递为 false,因此绘制的图未填充。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.jointplot(
data=tips, x="total_bill", y="tip",
marker="*", s=150, marginal_kws=dict(bins=50, fill=False),
)
plt.show()
输出
获得的输出如下:
示例 4
在此示例中,我们将绘制一个联合图,然后使用 plot_joint 方法在现有的联合图上添加不同类型的图。下面,我们为 tips 数据集绘制了一个散点图,然后在散点图上以红色绘制了一个核密度估计 (KDE) 图,如图所示。这可以使用 plot_joint() 方法实现。
在此示例中,KDE 图的颜色初始化为红色,要呈现的 KDE 水平初始化为 6。
import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
g = sns.jointplot(data=tips, x="total_bill", y="tip")
g.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
plt.show()
输出
获得的图如下所示: