Python seaborn.catplot()方法

2025年1月5日 | 阅读 5 分钟

要绘制分类图,请使用 Seaborn. catplot() 函数。此函数提供对各种轴级别函数的访问,这些函数使用几种可用的可视化表示之一显示数值数据与一个或多个类别变量之间的关系。type 参数选择底层轴级别函数。

以下是可以创建的各种分类图,以及 type 参数可接受的值。

  • 三种分类散点图是 swarm、strip 和 cat 散点图。
  • 分类分布图包括 box、violin 和 boxen 图。
  • 分类估计图包括 bar、point 和 count 图。

以下是 seaborn.catplot() 方法的语法

语法

加载 Seaborn 库

可以使用以下代码导入或加载 Seaborn 库。

加载数据集

本文将使用 Seaborn 库中预装的 Tips 数据集。要加载数据集,请运行以下命令。

可以使用以下列出的命令查看数据集的前五行。这有助于我们理解可以在图上绘制的变量。

上面提到的代码的结果如下图所示。

数据加载完毕后,我们将进行可视化。

示例 1

在本例中,我们将通过向函数提供 x、y 和 hue 参数来学习如何创建基本的 plot()。

您可以使用以下代码行来完成此操作。

说明

该代码在导入 Seaborn 和 Matplotlib 库后,加载了“tips”数据集,该数据集包含餐厅账单、小费以及诸如一天中的时间(午餐或晚餐)等其他变量的详细信息。要快速了解数据,请参阅 tips.head() 方法,该方法显示此数据集的前几行。接下来,使用 sns. catplot 函数创建散点图,其中 x="total_bill",y="tip",hue="time",以区分午餐或晚餐时段的用餐点。最后,通过调用 plt. show() 来渲染绘图。此散点图说明了午餐和晚餐服务时段之间的任何差异,并有助于可视化总账单金额和小费之间的关系。

输出

Python seaborn.catplot() method

示例 2

在本例中,我们将通过使用 height 和 aspect 参数来查看如何更改图的大小。我们将设置这些参数的值,并跟踪图的大小如何变化。

说明

该代码在导入 Seaborn 和 Matplotlib 库后,加载了“tips”数据集,该数据集包含餐厅账单、小费以及诸如一天中的时间(午餐或晚餐)和顾客性别等其他变量的详细信息。要快速了解数据,tips.head() 函数显示数据集的前几行。使用 sns. catplot 函数创建分类图,使用 x="sex" 和 y="tip" 参数来比较男性和女性顾客留下的小费。使用 hue="time" 参数区分午餐或晚餐时段的用餐点。使用 height=5 和 aspect=.8 参数调整了图的大小和纵横比。最后,通过调用 plt. show() 来渲染绘图。

输出

这将产生一个如下所示的输出图。

Python seaborn.catplot() method

示例 3

由于分类图是使用 catplot() 绘制的,我们将理解如何使用 row 和 col 参数。row 和 col 参数用于在分面图上绘制数据框中的分类变量。

我们正在使用的 Tips 数据集有四个分类变量:smoker、day、time 和 sex。在下图中,我们使用了这四个变量中的每一个。

说明

该代码在导入 Seaborn 和 Matplotlib 库后,加载了“tips”数据集,该数据集包含餐厅账单、小费以及诸如一周中的某一天、一天中的时间(午餐或晚餐)、顾客是否吸烟以及顾客的性别等其他因素的详细信息。要查看数据,tips.head() 函数显示数据集的前几行。要生成复杂的分类图,请使用 sns. catplot 函数并提供 x="day" 和 y="tip" 以显示不同星期的小费差异。使用 hue="time" 参数区分午餐或晚餐时段的用餐点。使用 col="smoker" 和 row="sex" 选项将绘图排列成网格,这些选项为性别和吸烟状态的任何组合创建子图。最后,通过调用 plt. show() 来渲染绘图。这种详细的地图更容易看到小费金额如何根据一天、一天中的时间以及性别和吸烟状况等顾客属性而变化。

可以使用上面的代码的 catplot() 函数来绘制 Tips 数据集中的每个四个分类变量。

输出

Python seaborn.catplot() method

示例 4

seaborn.catplot() 函数有许多参数。Kind 是一个非常有用的指标。绘制的图的类型取决于传递给此选项的值。可以将其分配给各种值,包括“strip”、“swarm”、“box”、“violin”、“boxen”、“point”、“bar”或“count”。

以下代码演示了此参数如何工作。

说明

在加载了包含餐厅账单、小费以及诸如一周中的某一天、一天中的时间(午餐或晚餐)和顾客性别等其他变量的数据的“tips”数据集后,该代码导入了 Seaborn 和 Matplotlib 库。要查看数据,tips.head() 函数显示数据集的前几行。使用 sns. catplot 函数创建分类图,使用 x="day" 和 y="tip" 参数来显示不同星期的小费差异。而 col="time" 选项为午餐和晚餐提供了不同的子图,hue="sex" 参数根据客户的性别区分数据点。kind="swarm" 参数指定了一个 swarm 图,该图组织点以避免重叠并提供分布的清晰视图。最后,通过调用 plt. show() 来渲染绘图。此图有助于可视化不同天的小费金额差异,区分男性和女性顾客,并根据用餐时间(午餐和晚餐)划分数据。

输出

Python seaborn.catplot() method