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()
输出
下面附上获得的图。
示例 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()
输出
产生的输出图如下,
正如我们在图中看到的那样,标记的大小显着增加,这是因为大小参数传递了值 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()
输出
上面的代码将获得如下所示的输出。
示例 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()
输出
上面这行代码的输出结果如下 −