seaborn.barplot#
- seaborn.barplot(data=None, *, x=None, y=None, hue=None, order=None, hue_order=None, estimator='mean', errorbar=('ci', 95), n_boot=1000, seed=None, units=None, weights=None, orient=None, color=None, palette=None, saturation=0.75, fill=True, hue_norm=None, width=0.8, dodge='auto', gap=0, log_scale=None, native_scale=False, formatter=None, legend='auto', capsize=0, err_kws=None, ci=<deprecated>, errcolor=<deprecated>, errwidth=<deprecated>, ax=None, **kwargs)#
将点估计值和误差显示为矩形条形图。
条形图表示数值变量的聚合或统计估计值,每个矩形的高度代表估计值,并使用误差条表示围绕该估计值的不确定性。条形图在轴范围内包含 0,当 0 是变量取值的有效值时,条形图是一个不错的选择。
有关更多信息,请参阅教程。
注意
默认情况下,此函数将一个变量视为分类变量,并在相关轴上的序数位置 (0, 1, … n) 绘制数据。从 0.13.0 版本开始,可以通过设置
native_scale=True
来禁用此功能。- 参数:
- dataDataFrame、Series、dict、array 或 array 列表
用于绘图的数据集。如果
x
和y
缺失,则将其解释为宽格式。否则,预计它是长格式。- x, y, hue
data
中的变量名称或矢量数据 用于绘制长格式数据的输入。有关解释,请参阅示例。
- order, hue_order字符串列表
绘制分类级别顺序,否则从数据对象推断级别。
- estimator将向量映射到标量的字符串或可调用对象
用于估计每个分类箱内的统计函数。
- errorbar字符串、(字符串、数字) 元组、可调用对象或 None
误差条方法的名称(“ci”、“pi”、“se” 或 “sd”),或者包含方法名称和级别参数的元组,或者将向量映射到 (min, max) 区间的函数,或者 None 以隐藏误差条。有关更多信息,请参阅误差条教程。
v0.12.0 版本新增。
- n_bootint
用于计算置信区间的引导样本数量。
- seedint、
numpy.random.Generator
或numpy.random.RandomState
用于可重复引导的种子或随机数生成器。
- units
data
中的变量名称或矢量数据 采样单元标识符;由误差条函数用于执行多级引导并考虑重复测量。
- weights
data
中的变量名称或矢量数据 用于计算加权统计量的数据值或列。请注意,使用权重可能会限制其他统计选项。
v0.13.1 版本新增。
- orient“v” | “h” | “x” | “y”
绘图的方向(垂直或水平)。这通常根据输入变量的类型推断,但它可用于解决当
x
和y
都是数值或绘制宽格式数据时出现的歧义。v0.13.0 版本更改: 添加了 'x'/'y' 作为选项,等效于 'v'/'h'。
- colormatplotlib 颜色
绘图中元素的单一颜色。
- palette调色板名称、列表或字典
用于
hue
变量的不同级别的颜色。应为color_palette()
可解释的内容,或者将色调级别映射到 matplotlib 颜色的字典。- saturationfloat
绘制填充颜色的原始饱和度的比例。较大的色块通常使用去饱和颜色看起来更好,但如果希望颜色与输入值完全匹配,则将其设置为
1
。- fillbool
如果为 True,则使用实心色块。否则,绘制为线框图。
v0.13.0 版本新增。
- hue_norm元组或
matplotlib.colors.Normalize
对象 当
hue
变量为数值时,应用于hue
变量的颜色图的数据单位归一化。如果hue
为分类变量,则不相关。v0.12.0 版本新增。
- widthfloat
分配给方向轴上每个元素的宽度。当
native_scale=True
时,它相对于本机尺度中两个值之间的最小距离。- dodge“auto” 或 bool
当使用色调映射时,是否应缩小元素并在方向轴上进行平移以消除重叠。如果为
"auto"
,则在方向变量与分类变量交叉时设置为True
,否则设置为False
。v0.13.0 版本更改: 添加了
"auto"
模式作为新的默认值。- gapfloat
沿方位轴缩小此比例因子,以在躲避元素之间添加间隙。
0.13.0 版本新增。
- log_scale布尔值或数字,或布尔值或数字对
将轴刻度设置为对数。单个值设置图中任何数值轴的数据轴。一对值独立设置每个轴。数值被解释为所需的基数(默认值为 10)。当为
None
或False
时,seaborn 采用现有的 Axes 刻度。v0.13.0 版本新增。
- native_scale布尔值
当为 True 时,分类轴上的数值或日期时间值将保持其原始比例,而不是转换为固定索引。
v0.13.0 版本新增。
- formatter可调用对象
将分类数据转换为字符串的函数。影响分组和刻度标签。
v0.13.0 版本新增。
- legend“auto”、”brief”、”full” 或 False
如何绘制图例。如果为 “brief”,则数值
hue
和size
变量将使用均匀间隔值的样本表示。如果为 “full”,则每个组将在图例中获得一个条目。如果为 “auto”,则根据级别数量在简短表示或完整表示之间选择。如果为False
,则不会添加图例数据,也不会绘制图例。v0.13.0 版本新增。
- capsize浮点数
误差条“帽”的宽度,相对于条形间距。
- err_kws字典
误差条艺术家的参数,有关
matplotlib.lines.Line2D
的详细信息,请参见。v0.13.0 版本新增。
- ci浮点数
要显示的置信区间的级别,在 [0, 100] 中。
自 v0.12.0 版本起已弃用: 使用
errorbar=("ci", ...)
。- errcolormatplotlib 颜色
用于误差条线的颜色。
自 0.13.0 版本起已弃用: 使用
err_kws={'color': ...}
。- errwidth浮点数
误差条线(和帽)的粗细,以点数计。
自 0.13.0 版本起已弃用: 使用
err_kws={'linewidth': ...}
。- axmatplotlib Axes
要绘制图表的 Axes 对象,否则使用当前 Axes。
- kwargs键值映射
其他参数将传递给
matplotlib.patches.Rectangle
。
- 返回值:
- axmatplotlib Axes
返回绘制了图表在其上的 Axes 对象。
注释
对于 0 不是有意义值的 dataset,
pointplot()
将允许您专注于一个或多个分类变量级别之间的差异。同样重要的是要注意,条形图只显示平均值(或其他聚合值),但通常更重要的是显示每个分类变量级别上的值分布。在这些情况下,
boxplot()
或violinplot()
等方法可能更合适。示例
使用长数据,将
x
和y
分配给按分类变量分组,并绘制聚合值,以及置信区间sns.barplot(penguins, x="island", y="body_mass_g")
在 v0.13.0 之前,每个条形图将具有不同的颜色。若要复制此行为,也要将分组变量分配给
hue
sns.barplot(penguins, x="body_mass_g", y="island", hue="island", legend=False)
绘制“宽格式”dataframe 时,将聚合每个列并将其表示为条形图
flights_wide = flights.pivot(index="year", columns="month", values="passengers") sns.barplot(flights_wide)
仅传递 series(或字典)将绘制其每个值,使用索引(或键)来标记条形图
sns.barplot(flights_wide["Jun"])
使用长格式数据,您可以使用
hue
添加第二层分组sns.barplot(penguins, x="island", y="body_mass_g", hue="sex")
使用误差条显示标准差而不是置信区间
sns.barplot(penguins, x="island", y="body_mass_g", errorbar="sd")
使用不同的聚合函数并禁用误差条
sns.barplot(flights, x="year", y="passengers", estimator="sum", errorbar=None)
使用每个条形图的值添加文本标签
ax = sns.barplot(flights, x="year", y="passengers", estimator="sum", errorbar=None) ax.bar_label(ax.containers[0], fontsize=10);
保留分组变量的原始比例,并在数值坐标中添加注释
ax = sns.barplot( flights, x="year", y="passengers", native_scale=True, estimator="sum", errorbar=None, ) ax.plot(1955, 3600, "*", markersize=10, color="r")
使用
orient
解决当两个变量都是数值时关于哪个变量应该分组的歧义sns.barplot(flights, x="passengers", y="year", orient="y")
使用
matplotlib.patches.Rectangle
和matplotlib.lines.Line2D
关键字参数自定义图表的显示sns.barplot( penguins, x="body_mass_g", y="island", errorbar=("pi", 50), capsize=.4, err_kws={"color": ".5", "linewidth": 2.5}, linewidth=2.5, edgecolor=".5", facecolor=(0, 0, 0, 0), )
使用
catplot()
绘制分面条形图,建议直接使用FacetGrid
进行操作sns.catplot( penguins, kind="bar", x="sex", y="body_mass_g", col="species", height=4, aspect=.5, )