头图

在上一篇介绍 Seaborn 的文章中,我们讨论了一些基础的可视化工具,例如直方图,以及如何使用 Seaborn 控制图形的样式和颜色。在这篇文章中,我们将深入 Seaborn 的中级使用,包括创建复杂的统计图形,如散点图矩阵、箱线图和小提琴图等。

一、散点图矩阵

Seaborn 的 pairplot 函数可以创建一个散点图矩阵,用来展示多个变量间的关系。散点图矩阵中的每个子图展示了数据集中两个变量的关系。

下面的例子展示了如何使用 pairplot 创建散点图矩阵:

import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

# 加载 iris 数据集
iris = load_iris()
data = iris.data
feature_names = iris.feature_names

# 创建 DataFrame
df = pd.DataFrame(data, columns=feature_names)

# 创建散点图矩阵
sns.pairplot(df)

# 显示图形
plt.show()

二、箱线图和小提琴图

箱线图是一种用于展示数据分布的统计图形,它可以显示数据的最大值、最小值、中位数、第一四分位数和第三四分位数。

小提琴图是箱线图的变体,除了显示与箱线图相同的统计信息外,还添加了 KDE(Kernel Density Estimation)曲线,使得我们可以看到数据的分布情况。

下面的例子展示了如何使用 Seaborn 创建箱线图和小提琴图:

# 创建箱线图
sns.boxplot(x="species", y="sepal length (cm)", data=df)

# 创建小提琴图
sns.violinplot(x="species", y="sepal length (cm)", data=df)

三、绘制多个子图

Seaborn 还提供了 FacetGrid 类,用于创建多个子图。FacetGrid 可以根据数据的一个或多个特性创建子图,使得我们可以在不同的子图中比较这些特性。

下面的例子展示了如何使用 FacetGrid 创建子图:

# 创建 FacetGrid
g = sns.FacetGrid(df, col="species")

# 在每个子图中绘制直方图
g.map(sns.histplot, "sepal length (cm)")

四、结论

在这篇文章中,我们进一步探讨了 Seaborn 的中级使用,包括如何创建散点图矩阵、箱线图、小提琴图,以及如何使用 FacetGrid 创建多个子图。这些工具都是 Seaborn 提供的强大功能,可以


小小张说故事
9 声望3 粉丝