matplotlib.pyplot.barh#

matplotlib.pyplot.barh(y, width, height=0.8, left=None, *, align='center', data=None, **kwargs)[source]#

绘制水平条形图。

条形图位于 y 位置,并根据给定的 align(对齐方式)进行排列。其尺寸由 width(宽度)和 height(高度)决定。水平基线为 left(默认为 0)。

许多参数可以接受一个适用于所有条形图的单一值,也可以接受一个序列值,每个条形图一个。

参数:
y浮点数或类数组

条形的 y 坐标。有关条形与坐标的对齐方式,请参阅 align 参数。

条形图常用于分类数据,即条形下方的字符串标签。你可以直接向 y 提供一个字符串列表。barh(['A', 'B', 'C'], [1, 2, 3]) 通常比 barh(range(3), [1, 2, 3], tick_label=['A', 'B', 'C']) 这种写法更简短、更方便。只要名称唯一,两者是等效的。显式的 tick_label 写法会按给定的顺序绘制名称。然而,当分类 y 数据中存在重复值时,这些值会映射到同一个数值型 y 坐标,因此对应的条形会重叠绘制在一起。

width浮点数或类数组

条形图的宽度。

注意:如果 left 具有单位(例如日期时间),则 width 应当是与 left 值之差的单位(例如时间增量 timedelta)。

height浮点数或类数组,默认值:0.8

条形的高度。

注意:如果 y 具有单位(例如日期时间),则 height 应当是 y 值周围差值的单位(例如时间增量 timedelta)。

left浮点数或类数组,默认值:0

条形左侧的 x 坐标。

注意:如果 left 具有单位,则 x 轴将获得适合该单位(例如日期或分类)的定位器(Locator)和格式化器(Formatter)。

align{'center', 'edge'},默认值:'center'

基准线与 y 坐标的对齐方式

  • 'center':将条形在 y 位置上居中。

  • 'edge':将条形的底边与 y 位置对齐。

若要将条形按顶边对齐,可传入负的 height 值并设置 align='edge'

返回:
BarContainer

包含所有条形图和可选误差线的容器。

其他参数:
colorcolorcolor 列表,可选

条形表面的颜色。

edgecolorcolorcolor 列表,可选

条形边缘的颜色。

linewidth浮点数或类数组,可选

条形边缘的宽度。如果为0,则不绘制边缘。

tick_label字符串或字符串列表,可选

条形图的刻度标签。默认值:None(使用默认的数字标签。)

label字符串或字符串列表,可选

单个标签将附加到生成的 BarContainer 上,作为整个数据集的图例标签。如果提供了一个列表,它必须与 x 的长度相同,并标记各个单独的条形。重复的标签不会被去重,会导致重复的图例条目,因此最好在条形样式也不同时使用(例如,通过向 color 传入列表)。

提示:使用 bar_label 在条形上放置标签。

xerr, yerr浮点数或形状为(N,)或形状为(2, N)的类数组,可选

如果不为 None,则在条形图尖端添加水平/垂直误差线。这些值是相对于数据的 +/- 大小

  • 标量:所有条形图的对称 +/- 值

  • 形状(N,):每个条形图的对称 +/- 值

  • 形状(2, N):每个条形图的单独 - 和 + 值。第一行包含较低误差,第二行包含较高误差。

  • None:无误差棒(默认)。

有关 xerryerr 用法的示例,请参阅 指定误差线的不同方法

ecolorcolorcolor 列表,默认:'black'

误差线的线条颜色。

capsizefloat,默认:rcParams["errorbar.capsize"](默认:0.0

误差线帽的长度(以点为单位)。

error_kw字典,可选

传递给 errorbar 方法的关键字参数字典。此处定义的 ecolorcapsize 值优先于独立的关键字参数。

log布尔值,默认值:False

如果为 True,将 x 轴设置为对数刻度。

data可索引对象,可选

如果提供,所有参数也接受字符串 s,如果 sdata 中的键,则将其解释为 data[s]

**kwargsRectangle 属性

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

浮点数或 None

angle

未知

animated

布尔值

antialiasedaa

布尔值或 None

bounds

(左,下,宽,高)

capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

color

color

edgecolorec

颜色 或 None

edgegapcolor

颜色 或 None

facecolorfc

颜色 或 None

figure

FigureSubFigure

fill

布尔值

gid

str

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

hatch_linewidth

未知

hatchcolor

color 或 'edge' 或 None

height

未知

in_layout

布尔值

joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

label

object

linestylels

{'-', '--', '-.', ':', '', ...} 或 (offset, on-off-seq)

linewidthlw

浮点数或 None

mouseover

布尔值

path_effects

AbstractPathEffect 列表

picker

None 或 布尔值 或 浮点数 或 可调用对象

rasterized

布尔值

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

transform

变换

url

str

visible

布尔值

width

未知

x

未知

xy

(浮点数, 浮点数)

y

未知

zorder

浮点数

另请参阅

bar

绘制垂直条形图。

bar_label

为条形添加标签。

备注

注意

这是 pyplot 包装器,对应 axes.Axes.barh

堆叠条形图可以通过为每个条形传入单独的 left 值来实现。请参阅 离散分布水平条形图

使用 matplotlib.pyplot.barh 的示例#

带标签的条形图

带标签的条形图

离散分布作为水平条形图

离散分布作为水平条形图

多个直方图并排

多个直方图并排