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()方法的部分参数如下。

S.No 名称和描述
1 Data

采用数据框,其中每一列都是一个变量,每一行都是一个观察值。

2 hue

指定将显示在特定网格面上的数据部分的变量。 要调节此变量的级别顺序,请参阅 var order 参数。

3 Kind

从{'scatter', 'kde', 'hist', 'reg'}获取值并确定要制作的图类型。

4 ratio

获取数值并确定关节轴高度与边缘轴高度的比率。

5 Height

采用标量值并确定刻面的高度。

6 Color

将 matplotlib 颜色作为输入并确定不使用色调映射时的单一颜色规范。

7 Marginal_ticks

采用布尔值,如果为 False,则抑制边缘图的计数/密度轴上的刻度。

8 hue_order

将列表作为输入,faceting 变量级别的顺序由此顺序确定。


返回值

此方法返回管理多个子图的 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 数据集,并通过传递来自该数据集的数据绘制联合图。 对于 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()

输出

得到的 plot 输出如下 −

seaborn jointplot 方法

示例 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 方法

示例 3

在这个例子中,我们将使用 marginal_kws 参数,它是一个额外的关键字参数,它决定了在 facet 的边缘显示的绘图类型。 在下面的示例中,我们传递了 bin,这意味着将在边距上绘制指定数量的 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 多图网格简介