You are reading an old version of the documentation (v3.1.0). For the latest version see https://matplotlib.org/stable/api/category_api.html
Version 3.1.0
matplotlib
Fork me on GitHub

matplotlib.category

Module that allows plotting of string "category" data. i.e. plot(['d', 'f', 'a'],[1, 2, 3]) will plot three points with x-axis values of 'd', 'f', 'a'.

See Plotting categorical variables for an example.

The module uses Matplotlib's matplotlib.units mechanism to convert from strings to integers, provides a tick locator and formatter, and the class:UnitData that creates and stores the string-to-integer mapping.

class matplotlib.category.StrCategoryConverter[source]

Bases: matplotlib.units.ConversionInterface

static axisinfo(unit, axis)[source]

Sets the default axis ticks and labels

Parameters:
unit : UnitData

object string unit information for value

axis : axis

axis for which information is being set

Returns:
axisinfo : AxisInfo

Information to support default tick labeling

static convert(value, unit, axis)[source]

Convert strings in value to floats using mapping information store in the unit object.

Parameters:
value : string or iterable

Value or list of values to be converted.

unit : UnitData

An object mapping strings to integers.

axis : Axis

axis on which the converted value is plotted.

Note

axis is unused.

Returns:
mapped_value : float or ndarray[float]
static default_units(data, axis)[source]

Sets and updates the axis units.

Parameters:
data : string or iterable of strings
axis : axis

axis on which the data is plotted

Returns:
class : UnitData

object storing string to integer mapping

class matplotlib.category.StrCategoryFormatter(units_mapping)[source]

Bases: matplotlib.ticker.Formatter

String representation of the data at every tick

Parameters:
units_mapping : Dict[Str, int]

string:integer mapping

class matplotlib.category.StrCategoryLocator(units_mapping)[source]

Bases: matplotlib.ticker.Locator

tick at every integer mapping of the string data

Parameters:
units_mapping : Dict[str, int]

string:integer mapping

tick_values(self, vmin, vmax)[source]

Return the values of the located ticks given vmin and vmax.

Note

To get tick locations with the vmin and vmax values defined automatically for the associated axis simply call the Locator instance:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
class matplotlib.category.UnitData(data=None)[source]

Bases: object

Create mapping between unique categorical values and integer ids.

Parameters:
data : iterable

sequence of string values

update(self, data)[source]

Maps new values to integer identifiers.

Parameters:
data : iterable

sequence of string values

Raises:
TypeError

If the value in data is not a string, unicode, bytes type