seaborn.boxplot#

seaborn.boxplot(data=None, *, x=None, y=None, hue=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, fill=True, dodge='auto', width=0.8, gap=0, whis=1.5, linecolor='auto', linewidth=None, fliersize=None, hue_norm=None, native_scale=False, log_scale=None, formatter=None, legend='auto', ax=None, **kwargs)#

绘制箱线图以显示相对于类别的分布。

箱线图(或箱线图)以一种方便比较变量或跨分类变量级别的方式显示定量数据的分布。 箱子显示数据集的四分位数,而胡须则延伸以显示分布的其余部分,除了使用基于四分位数间距的方法确定的“异常值”点。

有关更多信息,请参阅 教程

注意

默认情况下,此函数将一个变量视为分类变量,并在相关轴上绘制数据在序数位置(0、1、… n)。 从 0.13.0 版开始,可以通过设置 native_scale=True 来禁用此功能。

参数:
dataDataFrame、Series、字典、数组或数组列表

用于绘图的数据集。 如果 xy 缺失,则将其解释为宽格式。 否则,预计它将是长格式。

x、y、huedata 中变量的名称或向量数据

用于绘制长格式数据的输入。 有关解释,请参阅示例。

order、hue_order字符串列表

用于绘制分类级别的顺序; 否则,级别将从数据对象中推断出来。

orient“v” | “h” | “x” | “y”

绘图的方向(垂直或水平)。 这通常根据输入变量的类型推断,但可用于在 xy 均为数值或绘制宽格式数据时解决歧义。

v0.13.0 版中的更改: 添加了 ‘x’/’y’ 作为选项,等效于 ‘v’/’h’。

colormatplotlib 颜色

绘图中元素的单一颜色。

palette调色板名称、列表或字典

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

saturation浮点数

用于绘制填充颜色的原始饱和度的比例。 大面积补丁通常看起来更好的颜色是去饱和的颜色,但如果希望颜色与输入值完全匹配,请将其设置为 1

fill布尔值

如果为 True,则使用实心补丁。 否则,绘制为线框。

v0.13.0 版中的新增功能。

dodge“auto” 或布尔值

使用色调映射时,元素是否应该沿方向轴缩小和移动以消除重叠。 如果为 "auto",则在方向变量与分类变量交叉时设置为 True,否则设置为 False

0.13.0 版中的更改: 添加了 "auto" 模式作为新的默认值。

width浮点数

分配给方向轴上每个元素的宽度。 当 native_scale=True 时,它相对于本机刻度中两个值之间的最小距离。

gap浮点数

沿方向轴收缩此因子以在闪避元素之间添加间隙。

v0.13.0 版中的新增功能。

whis浮点数或浮点数对

控制胡须长度的参数。 如果为标量,则胡须绘制到距最近铰链 *whis * IQR 内的最远数据点。 如果为元组,则将其解释为胡须代表的百分位数。

linecolor颜色

用于线元素的颜色,当 fill 为 True 时。

v0.13.0 版中的新增功能。

linewidth浮点数

框定绘图元素的线的宽度。

fliersize浮点数

用于指示异常值观察的标记的大小。

hue_norm元组或 matplotlib.colors.Normalize 对象

hue 是数值型时,应用于 hue 变量的颜色映射的 数据单位中的规范化。如果 hue 是分类型则不相关。

v0.12.0 版本新增。

log_scale布尔值或数字,或布尔值或数字对

将轴刻度设置为对数刻度。单个值将为图中任何数值轴设置数据轴。一对值将分别设置每个轴。数值型解释为所需的底数(默认值为 10)。当为 NoneFalse 时,seaborn 会委托给现有的 Axes 刻度。

v0.13.0 版中的新增功能。

native_scale布尔值

当为 True 时,分类轴上的数值型或日期时间值将保持其原始缩放比例,而不是转换为固定索引。

v0.13.0 版中的新增功能。

formatter可调用对象

用于将分类数据转换为字符串的函数。影响分组和刻度标签。

v0.13.0 版中的新增功能。

legend“auto”, “brief”, “full”, 或 False

如何绘制图例。如果为“brief”,数值型 huesize 变量将用一组均匀间隔的值表示。如果为“full”,每个组将在图例中获得一个条目。如果为“auto”,则根据级别数量选择简要或完整表示。如果为 False,则不会添加图例数据,也不会绘制图例。

v0.13.0 版中的新增功能。

axmatplotlib Axes

用于绘制图的 Axes 对象,否则使用当前 Axes。

kwargs键值映射

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

返回值:
axmatplotlib Axes

返回绘制了图的 Axes 对象。

另请参见

violinplot

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

stripplot

一个散点图,其中一个变量是分类型。可以与其他图结合使用以显示每个观察值。

swarmplot

一个分类散点图,其中点不会重叠。可以与其他图结合使用以显示每个观察值。

catplot

将一个分类图与 FacetGrid 相结合。

示例

绘制单个水平箱线图,将数据直接分配给坐标变量

sns.boxplot(x=titanic["age"])
../_images/boxplot_1_0.png

按分类变量分组,引用数据框中的列

sns.boxplot(data=titanic, x="age", y="class")
../_images/boxplot_3_0.png

绘制一个垂直箱线图,通过两个变量进行嵌套分组

sns.boxplot(data=titanic, x="class", y="age", hue="alive")
../_images/boxplot_5_0.png

将箱子绘制为线艺术,并在它们之间添加一个小间隙

sns.boxplot(data=titanic, x="class", y="age", hue="alive", fill=False, gap=.1)
../_images/boxplot_7_0.png

使用晶须覆盖数据的全部范围

sns.boxplot(data=titanic, x="age", y="deck", whis=(0, 100))
../_images/boxplot_9_0.png

绘制更窄的箱子

sns.boxplot(data=titanic, x="age", y="deck", width=.5)
../_images/boxplot_11_0.png

修改所有线艺术的颜色和宽度

sns.boxplot(data=titanic, x="age", y="deck", color=".8", linecolor="#137", linewidth=.75)
../_images/boxplot_13_0.png

按数值变量分组并保留其原始缩放比例

ax = sns.boxplot(x=titanic["age"].round(-1), y=titanic["fare"], native_scale=True)
ax.axvline(25, color=".3", dashes=(2, 2))
../_images/boxplot_15_0.png

使用底层 matplotlib 函数的参数自定义图

sns.boxplot(
    data=titanic, x="age", y="class",
    notch=True, showcaps=False,
    flierprops={"marker": "x"},
    boxprops={"facecolor": (.3, .5, .7, .5)},
    medianprops={"color": "r", "linewidth": 2},
)
../_images/boxplot_17_0.png