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 输出如下 −
示例 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 参数,它是一个额外的关键字参数,它决定了在 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()
输出
得到的输出如下 −
示例 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()
输出
得到的图如下,