seaborn.
barplot
(*, x=None, y=None, hue=None, data=None, order=None, hue_order=None, estimator=<function mean>, ci=95, n_boot=1000, units=None, seed=None, orient=None, color=None, palette=None, saturation=0.75, errcolor='.26', errwidth=None, capsize=None, dodge=True, ax=None, **kwargs)¶将点估计和置信区间显示为矩形条。
条形图表示数值变量的中心趋势估计值以及每个矩形的高度,并使用误差条表示该估计值周围的不确定性。条形图在定量轴范围内包含0,当0是定量变量的有意义值,并且您希望与之进行比较时,条形图是一个很好的选择。
对于0不是有意义值的数据集,点图将允许您关注一个或多个分类变量级别之间的差异。
同样重要的是要记住,条形图只显示平均值(或其他估计器)值,但在许多情况下,显示分类变量每一级的值分布可能更具信息性。在这种情况下,其他方法,如盒子或小提琴情节可能更合适。
输入数据可以以多种格式传递,包括:
表示为列表、numpy数组或直接传递给 x
, y
和/或 hue
参数。
“长格式”数据帧,在这种情况下 x
, y
和 hue
变量将决定如何绘制数据。
一个“宽格式”数据框,这样每个数字列都将被打印出来。
向量的数组或列表。
在大多数情况下,可以使用numpy或Python对象,但最好使用pandas对象,因为关联的名称将用于注释轴。此外,可以对分组变量使用分类类型来控制绘图元素的顺序。
此函数始终将其中一个变量视为分类变量,并在顺序位置(0,1。。。n) 在相关轴上,即使数据具有数字或日期类型。
见 tutorial 更多信息。
data
或矢量数据,可选中变量的名称用于绘制长格式数据的输入。解释见示例。
用于打印的数据集。如果 x
和 y
不存在,这被解释为广义形式。否则它将是长格式的。
以绘制中的分类级别,否则级别是从数据对象推断出来的。
在每个分类箱中估计的统计函数。
估计值周围的置信区间大小。如果为“sd”,则跳过自举并绘制观测值的标准偏差。如果 None
,不会执行引导,也不会绘制误差线。
计算置信区间时要使用的引导迭代次数。
data
或矢量数据,可选中变量的名称采样单元的标识符,用于执行多级引导和考虑重复测量设计。
种子或随机数发生器可复制的引导。
绘图的水平方向或垂直方向。这通常是根据输入变量的类型推断出来的,但当两者都存在时,它可以用来解决含糊不清的问题 x
和 y
是数字或打印宽格式数据时。
所有元素的颜色,或渐变调色板的种子。
用于不同级别的 hue
变量。应该是可以解释的东西 color_palette()
,或将色调级别映射到matplotlib颜色的字典。
以原始饱和度的比例绘制颜色。大的补丁通常看起来更好,稍微去饱和的颜色,但设置这个 1
如果希望打印颜色与输入颜色规范完全匹配。
表示置信区间的线的颜色。
误差条线(和封口)的厚度。
误差线上“大写”的宽度。
使用色调嵌套时,元素是否应沿分类轴移动。
轴对象,否则使用当前轴。
其他关键字参数传递给 matplotlib.axes.Axes.bar()
.
返回绘制了绘图的轴对象。
实例
绘制一组按分类变量分组的垂直条形图:
>>> import seaborn as sns
>>> sns.set_theme(style="whitegrid")
>>> tips = sns.load_dataset("tips")
>>> ax = sns.barplot(x="day", y="total_bill", data=tips)
绘制一组由两个变量嵌套分组的垂直条:
>>> ax = sns.barplot(x="day", y="total_bill", hue="sex", data=tips)
画一组水平线:
>>> ax = sns.barplot(x="tip", y="day", data=tips)
通过传递显式命令来控制条顺序:
>>> ax = sns.barplot(x="time", y="tip", data=tips,
... order=["Dinner", "Lunch"])
使用中位数作为中心趋势的估计值:
>>> from numpy import median
>>> ax = sns.barplot(x="day", y="tip", data=tips, estimator=median)
用误差线表示平均值的标准误差:
>>> ax = sns.barplot(x="day", y="tip", data=tips, ci=68)
显示观察值的标准偏差而不是置信区间:
>>> ax = sns.barplot(x="day", y="tip", data=tips, ci="sd")
要添加误差线“caps:
>>> ax = sns.barplot(x="day", y="tip", data=tips, capsize=.2)
为条形图使用不同的调色板:
>>> ax = sns.barplot(x="size", y="total_bill", data=tips,
... palette="Blues_d")
使用 hue
在不改变钢筋位置或宽度的情况下:
>>> tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
>>> ax = sns.barplot(x="day", y="total_bill", hue="weekend",
... data=tips, dodge=False)
以单一颜色打印所有条形图:
>>> ax = sns.barplot(x="size", y="total_bill", data=tips,
... color="salmon", saturation=.5)
使用 matplotlib.axes.Axes.bar()
用于控制样式的参数。
>>> ax = sns.barplot(x="day", y="total_bill", data=tips,
... linewidth=2.5, facecolor=(1, 1, 1, 0),
... errcolor=".2", edgecolor=".2")
使用 catplot()
合并 barplot()
和A FacetGrid
. 这允许在其他分类变量中进行分组。使用 catplot()
比使用更安全 FacetGrid
直接,因为它确保了跨方面的可变顺序的同步:
>>> g = sns.catplot(x="sex", y="total_bill",
... hue="smoker", col="time",
... data=tips, kind="bar",
... height=4, aspect=.7);