Seaborn.PairGrid 类
Seaborn.PairGrid 用于子图网格以绘制数据集中的成对关系。 该对象为数据集中的每个变量创建了一个包含多个轴的网格,其中包含列和行。
二元图可以使用各种轴级别的图表工具在上下三角形中绘制,对角线可以显示每个变量的边际分布。 使用 pairplot,可以在一条 line() 中生成许多常见的图。 当您需要更大的通用性时,请使用 PairGrid。
语法
seaborn.PairGrid 的语法如下 −
class seaborn.PairGrid(**kwargs)
参数
seaborn.PairGridare 的一些参数在下面讨论。
S.No | 名称和描述 |
---|---|
1 | Data 采用数据框,其中每一列都是一个变量,每一行都是一个观察值。 |
2 | hue 指定将显示在特定网格面上的数据部分的变量。 要调节此变量的级别顺序,请参阅 var order 参数。 |
3 | Kind 从{'scatter', 'kde', 'hist', 'reg'}中获取值,然后确定要绘制的图的类型。 |
4 | Diag_kind 从{'auto', 'hist', 'kde', None} 获取值,如果使用的话,确定对角线子图的类型。 如果是"auto",则根据是否使用色调进行选择。 |
5 | Height 采用标量值并确定刻面的高度。 |
6 | Aspect 获取每个刻面的标量值和纵横比,因此纵横比 * 高度给出每个刻面的宽度(以英寸为单位)。 |
7 | corner 采用布尔值,如果为 True,则不要将坐标轴添加到网格的上(非对角线)三角形,使其成为"角"图。 |
8 | hue_order 将列表作为输入,分面变量级别的顺序由此顺序确定。 |
加载 seaborn 库
让我们在继续开发绘图之前加载 seaborn 库和数据集。 要加载或导入 seaborn 库,可以使用以下代码行。
Import seaborn as sns
加载数据集
在本文中,我们将使用 seaborn 库中内置的练习数据集。 以下命令用于加载数据集。
exercise=sns.load_dataset("exercise")
下面提到的命令用于查看数据集中的前 5 行。 这使我们能够了解哪些变量可用于绘制图形。
exercise.head()
以下是上面这段代码的输出。
index,Unnamed: 0,id,diet,pulse,time,kind 0,0,1,low fat,85,1 min,rest 1,1,1,low fat,85,15 min,rest 2,2,1,low fat,88,30 min,rest 3,3,2,low fat,90,1 min,rest 4,4,2,low fat,92,15 min,rest
现在我们已经加载了数据集,我们将探索几个示例。
示例 1
我们将从调用 PairGrid 并将数据帧传递给它开始。 这将产生多个图,如下所示。
import seaborn as sns import matplotlib.pyplot as plt exercise=sns.load_dataset("exercise") exercise.head() g = sns.PairGrid(exercise) plt.show()
输出
得到的绘图如下图 −
示例 2
在这个例子中,我们将把更多的参数连同数据帧一起传递给 PairGrid。 我们正在使用练习数据集,我们将绘制本质上是散点图的图形。
import seaborn as sns import matplotlib.pyplot as plt exercise=sns.load_dataset("exercise") exercise.head() g = sns.PairGrid(exercise) g.map(sns.scatterplot) plt.show()
输出
得到的图如下所示。
示例 3
在这个例子中,我们将在 facet 中绘制不同类型的 sof plots。 这可以在 map_upper、map_lower 和 map_diag 函数的帮助下完成,这些函数用于初始化需要在网格中绘制的绘图类型。
假设使用map_upper,设置的是scatterplot,那么grid上段的图就是散点图,以此类推。 在下面的示例中,上面的图是实物散点图,下面的图是实物核密度估计 (KDE),其余是经验累积密度函数 (ecdf) 图。
import seaborn as sns import matplotlib.pyplot as plt exercise=sns.load_dataset("exercise") exercise.head() g=sns.PairGrid(exercise) g.map_upper(sns.scatterplot) g.map_lower(sns.kdeplot) g.map_diag(sns.ecdfplot) plt.show()
输出
得到的输出如下 −