一、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