0.12.0.dev0
  • Gallery
  • Tutorial
  • API
  • Site
      • 发行说明
      • 安装
      • 示例库
      • 教程
      • API引用
      • 引用
      • 档案文件
  • Page
      • 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)¶

用非重叠点绘制分类散点图。

此功能类似于 stripplot() ,但这些点会被调整(仅沿分类轴),以便它们不会重叠。这样可以更好地表示值的分布,但不能很好地适应大量观测。这种类型的情节有时被称为“蜂群”。

群图可以自己绘制,但在需要显示所有观测值以及底层分布的某些表示的情况下,它也是方框图或小提琴图的一个很好的补充。

正确地排列点需要在数据和点坐标之间进行精确的转换。这意味着必须设置非默认轴限制 之前 绘制情节。

输入数据可以以多种格式传递,包括:

  • 表示为列表、numpy数组或直接传递给 x , y 和/或 hue 参数。

  • “长格式”数据帧,在这种情况下 x , y 和 hue 变量将决定如何绘制数据。

  • 一个“宽格式”数据框,这样每个数字列都将被打印出来。

  • 向量的数组或列表。

在大多数情况下,可以使用numpy或Python对象,但最好使用pandas对象,因为关联的名称将用于注释轴。此外,可以对分组变量使用分类类型来控制绘图元素的顺序。

此函数始终将其中一个变量视为分类变量,并在顺序位置(0,1。。。n) 在相关轴上,即使数据具有数字或日期类型。

见 tutorial 更多信息。

参数
x、 y,色调 :中变量的名称 data 或矢量数据,可选中变量的名称

用于绘制长格式数据的输入。解释见示例。

data数据帧、数组或数组列表(可选)

用于打印的数据集。如果 x 和 y 不存在,这被解释为广义形式。否则它将是长格式的。

order, hue_order可选字符串列表

以绘制中的分类级别,否则级别是从数据对象推断出来的。

dodge可选的布尔

使用时 hue 嵌套,设置为 True 将沿分类轴分离不同色调级别的条带。否则,每个级别的点将绘制在一个群中。

orient“v”|“h”,可选

绘图的水平方向或垂直方向。这通常是根据输入变量的类型推断出来的,但当两者都存在时,它可以用来解决含糊不清的问题 x 和 y 是数字或打印宽格式数据时。

colormatplotlib颜色,可选

所有元素的颜色,或渐变调色板的种子。

palette调色板名称、列表或dict

用于不同级别的 hue 变量。应该是可以解释的东西 color_palette() ,或将色调级别映射到matplotlib颜色的字典。

size可选浮动

标记的半径,以点为单位。

edgecolormatplotlib颜色,“灰色”为特殊情况,可选

每个点周围线条的颜色。如果你通过了 "gray" ,亮度由用于点主体的调色板确定。

linewidth可选浮动

构成绘图元素的灰色线的宽度。

axmatplotlib轴,可选

轴对象,否则使用当前轴。

kwargs键、值映射

其他关键字参数传递给 matplotlib.axes.Axes.scatter() .

返回
axmatplotlib轴

返回绘制了绘图的轴对象。

参见

boxplot

一个具有类似API的传统盒子和胡须图。

violinplot

箱线图和核密度估计的结合。

stripplot

一个变量是绝对变量的散点图。可以与其他绘图一起使用来显示每个观察结果。

catplot

把一个明确的情节与另一个情节结合起来 FacetGrid .

实例

绘制单个水平群集图:

>>> import seaborn as sns
>>> sns.set_theme(style="whitegrid")
>>> tips = sns.load_dataset("tips")
>>> ax = sns.swarmplot(x=tips["total_bill"])
../_images/seaborn-swarmplot-1.png

通过分类变量对群集进行分组:

>>> ax = sns.swarmplot(x="day", y="total_bill", data=tips)
../_images/seaborn-swarmplot-2.png

绘制水平群集:

>>> ax = sns.swarmplot(x="total_bill", y="day", data=tips)
../_images/seaborn-swarmplot-3.png

使用第二个分类变量为点上色:

>>> ax = sns.swarmplot(x="day", y="total_bill", hue="sex", data=tips)
../_images/seaborn-swarmplot-4.png

拆分每个级别的 hue 沿分类轴的变量:

>>> ax = sns.swarmplot(x="day", y="total_bill", hue="smoker",
...                    data=tips, palette="Set2", dodge=True)
../_images/seaborn-swarmplot-5.png

通过传递显式命令来控制群集命令:

>>> ax = sns.swarmplot(x="time", y="total_bill", data=tips,
...                    order=["Dinner", "Lunch"])
../_images/seaborn-swarmplot-6.png

使用较大的点绘制:

>>> ax = sns.swarmplot(x="time", y="total_bill", data=tips, size=6)
../_images/seaborn-swarmplot-7.png

在方框图的顶部绘制大量观察结果:

>>> ax = sns.boxplot(x="total_bill", y="day", data=tips, whis=np.inf)
>>> ax = sns.swarmplot(x="total_bill", y="day", data=tips, color=".2")
../_images/seaborn-swarmplot-8.png

在小提琴图上画出成群的观察结果:

>>> ax = sns.violinplot(x="day", y="total_bill", data=tips, inner=None)
>>> ax = sns.swarmplot(x="day", y="total_bill", data=tips,
...                    color="white", edgecolor="gray")
../_images/seaborn-swarmplot-9.png

使用 catplot() 合并 swarmplot() 和A FacetGrid . 这允许在其他分类变量中进行分组。使用 catplot() 比使用更安全 FacetGrid 直接,因为它确保了跨方面的可变顺序的同步:

>>> g = sns.catplot(x="sex", y="total_bill",
...                 hue="smoker", col="time",
...                 data=tips, kind="swarm",
...                 height=4, aspect=.7);
../_images/seaborn-swarmplot-10.png

Back to top

© Copyright 2012-2021, Michael Waskom. 构建基于 Sphinx 3.4.1.