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

输出

获得的图的输出如下:

seaborn jointplot method

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

输出

获得的图如下所示:

jointplot method

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

输出

获得的输出如下:

jointplot

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

输出

获得的图如下所示:

seaborn jointplot
seaborn_multi_plot_grids_introduction.htm
广告

© . All rights reserved.