Seaborn.swarmplot() 方法

Seaborn.swarmplot() 方法用于绘制非重叠散点图,其中一个变量是分类变量。 此函数类似于 seaborn.stripplot() 方法,但调整了点以便不只在分类轴上重叠。

这提供了更好的值表示和分布,但并不适合用于大量观察。 该图的性质看起来像一个蜂群,因此称为 swarmplot()。 与带状图类似,seaborn.swarmplot() 方法可用于补充其他图,例如箱线图或小提琴图,或单独使用。 它以宽格式数据、长数据、数组或向量列表的形式接受输入。

语法

以下是 seaborn.swarmplot() 方法的语法 −

seaborn.swarmplot(*, x=None, y=None, hue=None, data=None, order=None, hue_order=None, dodge=False, orient=None, color=None, palette=None, size=5, edgecolor='gray', linewidth=0, ax=None, **kwargs)

参数

该方法的一些参数解释如下。

S.No 参数及说明
1 x,y

这些参数将变量名称作为绘制长格式数据的输入。

2 data

这是用于绘制图形的数据框。

3 hue

数据框中绘制图形所需的变量名称。

4 linewidth

此参数采用浮动值并确定构成图中元素的灰线的宽度。

5 dodge

此参数采用布尔值。 如果我们使用色调嵌套,将 true 传递给此参数将分离不同色调级别的条带。 如果传递了 False,每个级别的点将被绘制在彼此之上。

6 orient

它取值“h”或“v”,并以此为基础确定图形的方向。

7 color

matplotlib 颜色作为输入,这决定了所有元素的颜色。

8 size

此参数决定绘制的图中标记的半径。


加载 seaborn 库

让我们在继续开发绘图之前加载 seaborn 库和数据集。 要加载或导入 seaborn 库,可以使用以下代码行。

Import seaborn as sns

加载数据集

在本文中,我们将使用 seaborn 库中内置的 Titanic 数据集。 以下命令用于加载数据集。

titanic=sns.load_dataset("titanic")

下面提到的命令用于查看数据集中的前 5 行。 这使我们能够了解哪些变量可用于绘制图形。

titanic.head()

以下是上面这段代码的输出。

index,survived,pclass,sex,age,sibsp,parch,fare,embarked,class,who,adult_male,deck,embark_town,alive,alone
0,0,3,male,22.0,1,0,7.25,S,Third,man,true,NaN,Southampton,no,false
1,1,1,female,38.0,1,0,71.2833,C,First,woman,false,C,Cherbourg,yes,false
2,1,3,female,26.0,0,0,7.925,S,Third,woman,false,NaN,Southampton,yes,true

现在我们已经加载了数据集,我们将探索几个示例。

示例 1

在此示例中,我们将了解如何通过将 x、y 和数据参数传递给 seaborn.swarmplot() 方法来绘制简单的群图。 我们正在使用 titanic 数据集来了解此方法的工作原理,因此来自 titanic 数据集的 who 和 age 列分别传递给 x,y 参数。 下面的代码行可用于执行此操作。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="who", y="age", data=titanic)
plt.show()

输出

下面附上获得的图。

seaborn swarmplot

示例 2

我们将了解 seaborn.swarmplot() 方法的大小参数的用法。 该参数以浮点值作为输入,是一个可选参数。 标记的半径受传递给此参数的值的影响。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="age",data=titanic,y="who",size=10)
plt.show()

输出

产生的输出图如下,

seaborn swarmplot 方法

正如我们在图中看到的那样,标记的大小显着增加,这是因为大小参数传递了值 10,因此标记的半径为 10。

示例 3

现在,我们将了解色调映射如何影响生成的图形/输出。 因为我们使用的是 titanic 数据集并且它有 4 个分类变量,所以我们将其中一个传递给 x 或 y,另一个传递给 hue 参数。 在此示例中,我们将 alive 变量传递给 hue 参数。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="who", y="age",hue="alive", data=titanic)
plt.show()

输出

上面的代码将获得如下所示的输出。

graph output produced

示例 4

在这个例子中,我们将了解如何使用 dodge 参数以及上面使用的参数。 此参数采用布尔值。 如果我们使用色调嵌套,将 true 传递给此参数将分离不同色调级别的条带。 如果传递了 False,每个级别的点将被绘制在彼此之上。 以下代码行可用于使用 dodge 参数绘制图形。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
sns.swarmplot(x="who", y="age", hue="alive",dodge=True,data=titanic)
plt.show()

输出

上面这行代码的输出结果如下 −

dodge 参数

❮Seaborn 分类图简介