matplotlib.pyplot.bar_label(container, labels=None, *, fmt='%g', label_type='edge', padding=0, **kwargs)[source]#

Label a bar plot.

Adds labels to bars in the given BarContainer. You may need to adjust the axis limits to fit the labels.


Container with all the bars and optionally errorbars, likely returned from bar or barh.

labelsarray-like, optional

A list of label texts, that should be displayed. If not given, the label texts will be the data values formatted with fmt.

fmtstr or callable, default: '%g'

An unnamed %-style or {}-style format string for the label or a function to call with the value as the first argument. When fmt is a string and can be interpreted in both formats, %-style takes precedence over {}-style.

New in version 3.7: Support for {}-style format string and callables.

label_type{'edge', 'center'}, default: 'edge'

The label type. Possible values:

  • 'edge': label placed at the end-point of the bar segment, and the value displayed will be the position of that end-point.

  • 'center': label placed in the center of the bar segment, and the value displayed will be the length of that segment. (useful for stacked bars, i.e., Bar Label Demo)

paddingfloat, default: 0

Distance of label from the end of the bar, in points.


Any remaining keyword arguments are passed through to Axes.annotate. The alignment parameters ( horizontalalignment / ha, verticalalignment / va) are not supported because the labels are automatically aligned to the bars.

list of Text

A list of Text instances for the labels.