class AutoFormatter(zerotrim=None, tickrange=None, wraprange=None, prefix=None, suffix=None, negpos=None, **kwargs)[source]

Bases: matplotlib.ticker.ScalarFormatter

The new default number formatter. Differs from ScalarFormatter in the following ways:

  1. Trims trailing decimal zeros by default.

  2. Permits specifying range within which major tick marks are labeled.

  3. Permits adding arbitrary prefix or suffix to every tick label string.

  4. Permits adding “negative” and “positive” indicator.

  • zerotrim (bool, optional) – Whether to trim trailing decimal zeros. Default is rc['formatter.zerotrim'] = True.

  • tickrange (2-tuple of float, optional) – Range within which major tick marks are labelled. Default is (-np.inf, np.inf).

  • wraprange (2-tuple of float, optional) – Range outside of which tick values are wrapped. For example, (-180, 180) will format a value of 200 as -160.

  • prefix, suffix (str, optional) – Prefix and suffix for all tick strings. The suffix is added before the optional negpos suffix.

  • negpos (str, optional) – Length-2 string indicating the suffix for “negative” and “positive” numbers, meant to replace the minus sign.

Other Parameters

**kwargs – Passed to ScalarFormatter.


The matplotlib ScalarFormatter determines the number of significant digits based on the axis limits, and therefore may truncate digits while formatting ticks on highly non-linear axis scales like LogScale. We try to correct this behavior with a patch.

Methods Summary

__call__(x[, pos])

Convert number to a string.


Get the offset but always use math text.