stripplot() 和 swarmplot() 有什么区别?
什么是 Swarmplot() 和 Stripplot?
在 python seaborn 中,swarmplot() 使用一种称为"beeswarm"的技术来定位点,该技术会调整点以避免重叠。这会导致图中的点分散开来,更容易区分,但类别内点的相对位置不会保留。而 stripplot() 将点定位在分类轴上,每个刻度一个类别。点没有调整以避免重叠,因此如果许多点属于同一类别,它们可能会重叠。
功能 |
stripplot() |
swarmplot() |
---|---|---|
目的 |
显示单个变量的分布 |
显示单个变量的分布,同时避免点之间重叠 |
可视化 |
点沿数轴绘制,位置偏移抖动以避免重叠 |
点在数轴上的位置使得它们不会相互重叠 |
有用性 |
用于显示单个变量的分布,特别是在数据点数量很大且点之间重叠很大的情况下 |
有助于显示单个变量的分布,同时避免点之间重叠并保留各个数据点的位置信息 |
重叠 |
点可以明显重叠 |
点不会明显重叠 |
可扩展性 |
随着数据点数量的增加,可扩展性降低 |
随着数据点数量的增加,可扩展性更强 |
stripplot() 和 swarmplot() 都是 Python 中 Seaborn 库中的函数,它们可以可视化不同类别的数值变量的分布。
带状图
使用带状图(一种单轴散点图)可以可视化几个不同的一维值的分布。这些值显示为沿单个轴的点,大小相同的点可能会重叠。可以更改点的颜色或不透明度以表示重叠的值,或者可以使用抖动图或计数图代替它们。为了检查数据点在不同值、组或范围内的分布,通常会并排显示许多带状图。
示例 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 包(pd)、matplotlib.pyplot 包(plt)和 Seaborn 包(sns)。然后使用 DataFrame() 函数指定数据收集。Pandas 模块连接到此函数。制作四个单独的数组。第一个数组显示售罄商品的数量。第二个数组显示商品价格。第三个数组保存月份记录。最后一个数组列出产品名称。
我们在下一步中使用 swarmplot() 方法来生成群图。最后,我们使用 matplotlib.pyplot 库的 display() 函数。
示例 2
统计类别平面对每个"hue"参数维度都有一个指定的区域。当我们使用"hue"选项并将"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() 方法。对于此函数,我们将样式作为参数提供。我们将样式参数的值设置为"白色网格"。它显示图形的背景颜色。
我们现在利用 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() 可用于可视化连续变量在分类变量的每个类别中的分布,尤其是在点数很大的情况下。