📜  如何在 Seaborn 中创建子图?(1)

📅  最后修改于: 2023-12-03 14:52:34.286000             🧑  作者: Mango

如何在 Seaborn 中创建子图?

Seaborn 是一个基于 Matplotlib 的可视化库,能够快速绘制统计图形。在 Seaborn 中,子图是一种常见的可视化方式,用于将多个图形排列在一个图中,以便比较和分析数据。本文将介绍如何在 Seaborn 中创建子图。

步骤 1:导入库和数据集

首先,我们需要导入 Seaborn 库和一个数据集。本文使用 Seaborn 中自带的“tips”数据集,它包含餐厅顾客的小费和账单信息。

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
步骤 2:设置画布和子图

要创建子图,我们需要配置画布和子图。在 Seaborn 中,我们可以使用 subplots() 函数设置子图。

fig, axs = plt.subplots(nrows=2, ncols=2)

这将创建一个 2x2 的子图,其中 nrowsncols 分别指定了行数和列数。我们可以在这个画布上绘制多个图形,每个图形都对应一个子图。

步骤 3:绘制图形

现在,我们可以在子图中绘制图形。在 Seaborn 中,我们可以使用各种图形类型,包括散点图、折线图、柱状图等等。这里,我们将绘制一个散点图,并将其放置在第一个子图中。

sns.scatterplot(ax=axs[0, 0], x="total_bill", y="tip", data=tips)

此处的 ax 参数指定了我们要在哪个子图中绘制图形。具体而言,axs[0, 0] 指定了第一个子图。

接下来,我们在其他子图中分别绘制不同的图形。

sns.barplot(ax=axs[0, 1], x="sex", y="total_bill", data=tips)
sns.boxplot(ax=axs[1, 0], x="day", y="total_bill", data=tips)
sns.histplot(ax=axs[1, 1], x="tip", data=tips)
步骤 4:显示图形

最后,我们需要使用 plt.show() 函数显示图形。

plt.show()
完整代码
import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")

fig, axs = plt.subplots(nrows=2, ncols=2)

sns.scatterplot(ax=axs[0, 0], x="total_bill", y="tip", data=tips)
sns.barplot(ax=axs[0, 1], x="sex", y="total_bill", data=tips)
sns.boxplot(ax=axs[1, 0], x="day", y="total_bill", data=tips)
sns.histplot(ax=axs[1, 1], x="tip", data=tips)

plt.show()
结论

在 Seaborn 中创建子图是一件非常简单的事情,只需使用 subplots() 函数设置画布和子图,然后在每个子图中绘制相应的图形即可。通过这种方式,我们可以在一个图中比较和分析多个数据集,从而更好地理解和解释数据。