千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 掌握pairplot:从图表到函数

掌握pairplot:从图表到函数

来源:千锋教育
发布人:xqq
时间: 2023-11-25 14:52:36 1700895156

一、pairplot图

pairplot 是 seaborn 库中的一个函数,它被用来绘制数据集中各个变量之间的关系,绘制结果是一个各个特征之间相互关系的散点图矩阵。pairplot 会在一个网格中显示某些数据中所有可能的二元关系。具体来说,该函数可以显示出每对变量之间的散点图、直方图以及密度图。

下面是一个例子,展示了鸢尾花(iris)数据集中的三种花在花瓣长度、花瓣宽度、萼片长度和萼片宽度方面的数据。可以看到,除了每个特征的直方图之外,底部和左侧也是直方图。


import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style='ticks', color_codes=True)
iris = sns.load_dataset("iris")
g = sns.pairplot(iris)
plt.show()

运行上述代码,会得到以下图表:

二、pairplot图怎么看

将pairplot绘制出来之后,如何分析这幅图呢?我们可以按照以下步骤来进行分析:

1、对角线:对角线上是单变量分布的直方图或密度估计。直方图显示的是每个变量在数据集中的分布。密度图显示的是每个变量在数据集中的概率密度。这些图形能帮助我们检查每个特征的分布情况。

2、非对角线:非对角线上是两两变量之间的散点图,可以看出不同变量之间的相关关系。坐标轴上的标注可以帮助我们理解变量之间的相关性。例如,x轴标签 PetalWidth,y轴标签 SepalLength 就是花瓣宽度和萼片长度之间的关系。

3、下三角和上三角:可以看到,散点图沿着对角线是左下到右上的。这些散点图展示了两个特征之间的关系以及其相关性。例如,下三角中,右下角的图中可以看到,在sepal_length 和 petal_width之间存在一定的正相关性。

三、pairplot函数

下面是 pairplot 函数的定义:


seaborn.pairplot(data, *, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, diag_kind='auto', kind='scatter', markers=None, height=2.5, aspect=1,  dropna=True, plot_kws=None, diag_kws=None, grid_kws=None, size=None)

参数说明:

data: DataFrame。需要进行可视化的数据集。 hue: 字符串。在数据集中选择一个分类变量,并在图表中使用不同的颜色标识不同类别。 vars: 列表。需要根据指定列或行来显示的列或行的子集。这个参数会被忽略,如果 x_vars 或 y_vars 被指定。 x_vars, y_vars: 列表。需要在网格中显示的子集。“x_vars” 是在 x 轴上显示的变量列表,“y_vars” 是在 y 轴上显示的变量列表。可以同时指定 x_vars 和 y_vars,以显示非对角线元素。 hue_order: 列表。用于控制分类变量级别的绘图顺序。默认情况下,是按字母顺序排序。 palette: 在实现颜色映射时使用的调色板。palette 可以是颜色列表或者调用 seaborn 里自定义的颜色映射。 kind: 字符串。每个对角线上的绘图种类。可以是“scatter”、“hist”或“kde”。非对角线上的绘图都是散点图。 diag_kind: 字符串。对角线上绘图的种类。“auto”表示尝试推断要使用的绘图类型,“hist”表示直方图,“kde”表示密度图。 markers: 用于散点图的标记风格。 height: 整数。每个图表的高度(以英寸为单位)。 aspect: 整数。网格中每个轴的宽高比。 dropna: 布尔值。如果为True,则将缺少 NA/NaN 值的列或行删除。默认为True。 diag_kws: 字典,关键字参数。传递给 diagonal 子图函数的参数。

四、pairplot()函数各个参数的含义

下面详细介绍一下pairplot()函数的各个参数的含义及如何使用:

1、data

data是需要进行可视化的数据集。可以是 pandas.DataFrame 还可以是list、tuple、ndarray 类型。下面是一个例子,使用列表作为数据集:


import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(10, 4)
pairplot = sns.pairplot(x)
plt.show()

2、hue

hue是一个字符,用于区分数据集中不同的分类。具体来说,它会在图表中使用不同的颜色标识不同类别。在下面的例子中,我们使用 iris 数据集中的 Species 变量作为 hue:


import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
iris = sns.load_dataset("iris")

g = sns.pairplot(iris, hue="species")
plt.show()

3、vars, x_vars, y_vars

vars, x_vars 和 y_vars 都是可选的关键字参数,用于选择要在图表中显示的变量。vars 是指定要使用的列。使用 x_vars 和 y_vars 可以更精细的选择要显示的列或行。下面是一个例子:


import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

g = sns.pairplot(tips, vars=["total_bill", "tip"], hue="smoker")
plt.show()

4、palette

palette 是指定用于显示 hue 变量的颜色映射。下面的代码采用两种不同的调色板。


#默认调色板
g = sns.pairplot(iris, hue="species")
#指定常规调色板
g = sns.pairplot(iris, hue="species", palette="husl")
plt.show()

5、diag_kind

diag_kind参数可以选择在对角线上绘制何种类型的图形,其可以取值为:“auto”、“hist”和“kde”。

①“auto”表示函数自动识别可行的方式来表示精确图形。如果变量小于等于10,它使用“hist”;它使用“kde”代表高于10的变量数。缺省为“auto”。

②“hist”表示在对角线的位置绘制直方图。

③“kde”表示在对角线的位置绘制密度曲线。

下面是几个例子:


# 海德尔堡的数据集
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")

# 设置图表样式
sns.set(style="ticks", color_codes=True)

# 1. 默认
sns.pairplot(iris, diag_kind="auto", hue="species")
plt.show()

# 2. hist
sns.pairplot(iris, diag_kind="hist", hue="species")
plt.show()

# 3. kde
sns.pairplot(iris, diag_kind="kde", hue="species")
plt.show()

6、kind

如果要在非对角线上制绘制图形怎么办?”kind”参数负责选择这个情况下的绘制方式。可以取值为:“scatter”、“kde”(默认值)或者“reg(回归)”。下面的代码中,通过 kind 参数设置了非对角线上的元素为散点图。


# iris 数据集
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")

sns.set_style("ticks")
g = sns.pairplot(iris, hue="species", diag_kind="kde", kind="scatter")
plt.show()

7、markers

markers参数是一个标记列表。它被用于非对角线上绘制散点图时的标记样式选择。如果提供的标记数量少于数据集中的类别数量,则每个类别将使用每个标记的第一次出现。在下面的例子中,我们使用方块和圆圈分别表示不同类型烟民和非烟民,使用叉号表示男性和女性:


import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

g = sns.pairplot(tips, hue="smoker", markers=["o", "s"], diag_kind="hist")
plt.show()

五、plot

seaborn 开放性良好,自带的方法就满足了绝大部分绘图需求。但如果想要进一步控制图像细节,可以在 pairplot()之前调用FaciGrid类中的方法。这里列举几个重要的方法。例如,可以使用FacetGrid.map ()方法来调用自定义函数。以画出一条直线为例,如下所示:


import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

g = sns.FacetGrid(tips, col="time", row="smoker")
g = g.map(plt.hist, "total_bill")
plt.show()

六、python中pairplot选取3~5个与pairplot相关的

1、hue参数


import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

sns.pairplot(tips, hue="sex", markers="+")
plt.show()

2、vars参数

Vars参数是指定要分析的变量。


import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")

sns.pairplot(iris, vars=["petal_length", "petal_width"])
plt.show()

3、diag_kind参数


import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="ticks")

df = sns.load_dataset("iris")
g = sns.PairGrid(df, hue="species")
g.map_diag(sns.histplot)
g.map_offdiag(sns.scatterplot)
g.add_legend()
plt.show()

4、kind参数


sns.pairplot(data, kind="reg", plot_kws={'line_kws':{'color':'red'}})

5、palette参数

调色板的种类有很多种,这里列举两种:


import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

#默认调色板
sns.pairplot(tips, hue="smoker")
plt.show()

#husl调色板
sns.pairplot(tips, hue="smoker", palette="husl            
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT