在上一篇介绍 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 提供的强大功能,可以