seaborn.boxenplot#
- seaborn.boxenplot(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, linewidth=None, linecolor=None, width_method='exponential', k_depth='tukey', outlier_prop=0.007, trust_alpha=0.05, showfliers=True, hue_norm=None, log_scale=None, native_scale=False, formatter=None, legend='auto', scale=<deprecated>, box_kws=None, flier_kws=None, line_kws=None, ax=None, **kwargs)#
为大型数据集绘制增强型箱线图。
这种风格的图最初被称为“字母值”图,因为它显示了大量的分位数,这些分位数被定义为“字母值”。它类似于箱线图,绘制了分布的非参数表示,其中所有特征都对应于实际观测值。通过绘制更多的分位数,它提供了关于分布形状的更多信息,特别是在尾部。
请参阅 教程 以获取更多信息。
注意
默认情况下,此函数将其中一个变量视为分类变量,并在相关轴上以序数位置(0、1、…n)绘制数据。从 0.13.0 版开始,可以通过设置
native_scale=True
来禁用此功能。- 参数:
- dataDataFrame、Series、dict、array 或 array 列表
用于绘图的数据集。如果
x
和y
不存在,则将其解释为宽格式。否则,预计它将是长格式。- x, y, huedata 中的变量名称或向量数据
用于绘制长格式数据的输入。请参阅示例了解解释。
- order, hue_order字符串列表
用于绘制分类变量级别的顺序;否则,级别将从数据对象推断。
- orient“v” | “h” | “x” | “y”
绘图的方向(垂直或水平)。这通常根据输入变量的类型推断,但可以用来解决当
x
和y
都是数字或绘制宽格式数据时出现的歧义。在版本 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浮点数
沿着方向轴收缩此比例因子,在躲避的元素之间添加间隙。
版本 0.13.0 中的新增功能。
- linewidth浮点数
用于框定绘图元素的线条的宽度。
- linecolor颜色
用于线元素的颜色,当
fill
为 True 时。版本 v0.13.0 中的新增功能。
- width_method{“exponential”, “linear”, “area”}
用于字母值框宽度的计算方法
"exponential"
:表示相应的百分位数"linear"
:每个框的宽度递减一个固定值"area"
:表示该框中数据点的密度
- k_depth{“tukey”, “proportion”, “trustworthy”, “full”} 或整数
在每个尾部计算和绘制的级别数
"tukey"
:使用 log2(n) - 3 个级别,覆盖与箱线图晶须相似的范围"proportion"
:大约留下outlier_prop
个异常值"trusthworthy"
:扩展到置信度至少为trust_alpha
的级别"full"
: 使用 log2(n) + 1 个级别并扩展到最极端点
- outlier_propfloat
预期数据中异常值的比例;在
k_depth="proportion"
时使用。- trust_alphafloat
最极端级别的置信度阈值;在
k_depth="trustworthy"
时使用。- showfliersbool
如果为 False,则抑制异常值的绘制。
- hue_norm元组或
matplotlib.colors.Normalize
对象 应用于
hue
变量的色图中数据单位的归一化,当它为数值时。如果hue
是分类的,则不相关。v0.12.0 版本新增。
- log_scalebool 或数字,或 bool 或数字对
将轴刻度设置为对数。单个值设置图中任何数值轴的数据轴。一对值独立设置每个轴。数值被解释为所需的基数(默认值为 10)。当为
None
或False
时,seaborn 会推迟到现有的 Axes 刻度。版本 v0.13.0 中的新增功能。
- native_scalebool
当为 True 时,分类轴上的数值或日期时间值将保持其原始刻度,而不是转换为固定索引。
版本 v0.13.0 中的新增功能。
- formatter可调用对象
将分类数据转换为字符串的函数。影响分组和刻度标签。
版本 v0.13.0 中的新增功能。
- legend“auto”,“brief”,“full”,或 False
如何绘制图例。如果为“brief”,则数值
hue
和size
变量将以均匀间隔值的样本表示。如果为“full”,则每个组将在图例中获得一个条目。如果为“auto”,则根据级别数量在简要或完整表示之间进行选择。如果为False
,则不会添加图例数据,也不会绘制图例。版本 v0.13.0 中的新增功能。
- box_kws: dict
方框艺术家的关键字参数;传递给
matplotlib.patches.Rectangle
.v0.12.0 版本新增。
- line_kws: dict
表示中值的线的关键字参数;传递给
matplotlib.axes.Axes.plot()
.v0.12.0 版本新增。
- flier_kws: dict
表示异常值观测值的散点的关键字参数;传递给
matplotlib.axes.Axes.scatter()
.v0.12.0 版本新增。
- axmatplotlib Axes
用于绘制图形的 Axes 对象,否则使用当前 Axes。
- kwargs键值映射
其他关键字参数传递给
matplotlib.patches.Rectangle
,被box_kws
中的那些参数取代。
- 返回值:
- axmatplotlib Axes
返回带有绘制图形的 Axes 对象。
另请参见
violinplot
箱线图和核密度估计的组合。
boxplot
具有类似 API 的传统箱线图。
catplot
将分类图与
FacetGrid
组合。
备注
有关更详细的解释,您可以阅读介绍该图的论文:https://vita.had.co.nz/papers/letter-value-plot.html
示例
绘制单个水平图,将数据直接分配给坐标变量
sns.boxenplot(x=diamonds["price"])
按分类变量分组,引用数据框中的列
sns.boxenplot(data=diamonds, x="price", y="clarity")
按另一个变量分组,用方框的颜色表示它。默认情况下,每个箱线图将被“躲避”以便它们不会重叠;您也可以在它们之间添加一个小间隙
large_diamond = diamonds["carat"].gt(1).rename("large_diamond") sns.boxenplot(data=diamonds, x="price", y="clarity", hue=large_diamond, gap=.2)
选择每个方框宽度的默认规则表示方框覆盖的百分位数。或者,您可以通过线性因子减少每个方框的宽度
sns.boxenplot(data=diamonds, x="price", y="clarity", width_method="linear")
width
参数本身决定了最大方框的宽度sns.boxenplot(data=diamonds, x="price", y="clarity", width=.5)
有几种不同的方法来选择要绘制的方框数量,包括基于百分位数估计的置信水平的规则
sns.boxenplot(data=diamonds, x="price", y="clarity", k_depth="trustworthy", trust_alpha=0.01)
linecolor
和linewidth
参数控制方框的轮廓,而line_kws
参数控制表示中值的线,flier_kws
参数控制异常值的显示sns.boxenplot( data=diamonds, x="price", y="clarity", linewidth=.5, linecolor=".7", line_kws=dict(linewidth=1.5, color="#cde"), flier_kws=dict(facecolor=".7", linewidth=.5), )
也可以绘制未填充的方框。对于未填充的方框,所有元素都将以线艺术形式绘制并遵循
hue
(如果使用)。sns.boxenplot(data=diamonds, x="price", y="clarity", hue="clarity", fill=False)