stripplot() 和 swarmplot() 有什么区别?

stripplot() 和 swarmplot() 有什么区别?

阅读更多:Python 教程

什么是 Swarmplot() 和 Stripplot()?

Python Seaborn 中,swarmplot() 函数使用一种称为 “蜜蜂群聚” 的技术来调整点的位置以避免重叠。这导致点分布开,更容易区分,但类别内点的相对位置不保留。相反,stripplot() 将点定位在分类轴上,每个刻度一个类别。如果一个类别中有很多点,则不会调整点以避免重叠,因此它们可能会重叠。

特征 stripplot() swarmplot()
目的 显示单个变量的分布 显示单个变量的分布,同时避免点重叠
可视化 沿着数字线绘制点,并进行随机偏移,以避免重叠 将点定位在数字线上,使它们彼此不重叠
实用性 有助于显示单个变量的分布,特别是在数据点数量大且点重叠显著的情况下 有助于显示单个变量的分布,同时避免点重叠并保留各个数据点的位置信息
重叠 点可能会显著重叠 点不会显著重叠
可扩展性 随着数据点数量的增加而不太可扩展 随着数据点数量的增加而更可扩展

stripplot() 和 swarmplot() 都是 Python Seaborn 库中用于可视化不同类别的数值变量分布的函数。

条形图

条形图使用条形图可视化几个不同的一维值的分布。条形图是单轴散点图,值沿单个轴显示为点,大小相同的点可能会重叠。点的颜色或不透明度可以更改以表示重叠的值,或者可以使用 jitter plot 或 counts plot。通常会呈现许多条形图以检查数据点在不同值、组或范围的分布。

示例 1

import pandas as p
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Quantity": [15,26,17,18,15,36,27,18,25,16,17,28,15,16,17,28],

"Price":[1900,1000,1500,1600,1300,1400,1500,1800,1100,1200,1400,1500,1600,1700,1800,1900],
   "Month" : [2,3,2,3,2,3,2,3,4,4,4,5,5,5,4,3],
   "Merchandise":['X','X','X','X','Z','Z','Z','Z',
   'Y','Y','Y','Y','X','X','Z','Z']})

sns.swarmplot(data = df, y = "Price", x = "Quantity")
plt.show()

代码说明

我们在代码开始处导入了 Pandas as pd、matplotlib.pyplot as plt 和 Seaborn as sns 包。然后使用 DataFrame() 函数来指定数据集合,该函数连接到 Pandas 模块。制作四个不同的数组。第一个数组显示售罄商品的数量。第二个数组显示商品的价格。第三个数组保存月份记录。最后一个数组列出产品名称。

接下来,我们使用 swarmplot() 方法来生成 swarm 图。最后,我们使用 matplotlib.pyplot 库的 show() 函数来显示图形。

示例 2

统计类别图平面为每个“色调”参数维度指定了一个特定的区域。当我们使用“色调”选项并将“dodge”参数设置为True时,对象会被分离以显示不同的色调变化。 “palette”属性表示多个色调属性阴影。

import seaborn
import matplotlib.pyplot as plt
seaborn.set(style="whitegrid")
tips = seaborn.load_dataset("tips")

seaborn.swarmplot(x="day", y="total_bill", hue="smoker",
   data=tips, palette="Set2", dodge=True)

plt.show()

代码说明

在添加matplotlib.pyplot和Seaborn库之后,我们调用Seaborn包的set()方法。我们将样式作为参数提供给该函数。我们将该参数的值设置为“white grid”。它显示图的背景颜色。

之后,我们使用loaded_dataset()方法来获取内置数据帧。此函数接受输入“tips”并来自Seaborn头文件中派生而来。接下来,我们使用swarmplot()函数构建散点图。这里,函数的参数是两个轴的标题,颜色值,数据,调色板和闪避。虽然y轴显示总账单的记录,但x轴显示天数的记录。

簇状图

当您希望显示与基础分布的图像结合的所有观测值时,可以创建一个簇状图,该图可以作为盒状图或小提琴图的补充。

为了适当地排列点,需要在数据和点坐标之间进行精确的转换。因此,在能够创建绘图之前,必须建立非默认轴限制。

可以使用各种格式传递输入数据,包括 −

  • 直接将数据向量的列表、numpy或pandas表示传递给传递系列对象的x、y和/或hue参数。

  • “长形”DataFrame,在这种情况下,数据绘图由x、y和hue变量控制。

  • “宽形”DataFrame,它绘制每个数字列。

  • 向量的收集或数组。

示例1

绘制单个水平簇状图−

import seaborn as sns
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.swarmplot(x=tips["total_bill"])

示例2

根据类别(这里是区域和事件)对数据点进行分组。

import seaborn

seaborn.set(style='whitegrid')
fmri = seaborn.load_dataset("fmri")

seaborn.swarmplot(x="timepoint",
   y="signal",
   hue="region",
   data=fmri)

结论

最后,stripplot()和swarmplot()是Python库Seaborn中用于创建散点图的函数。这些图形可视化两个变量之间的关系以及数据分布。

stripplot()是一个函数,它用沿x轴展开的点绘制数据的散点图。它允许您指定x和y变量、数据以及各种定制选项,如点的颜色、大小和样式。stripplot()适用于可视化分类变量的每个类别中连续变量的分布。

swarmplot()是一个函数,它将点分散在x轴上以避免重叠,绘制数据的散点图。它允许您指定x和y变量、数据以及各种定制选项,如点的颜色、大小和样式。Swarmplot()适用于在分类变量的每个类别中可视化连续变量的分布,尤其是点的数量很多时。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程