matplotlib.category

Plotting of string "category" data: 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 and provides a tick locator, a tick formatter, and the UnitData class that creates and stores the string-to-integer mapping.

class matplotlib.category.StrCategoryConverter[source]

Bases: matplotlib.units.ConversionInterface

static axisinfo(unit, axis)[source]

Set the default axis ticks and labels.

Parameters
unitUnitData

object string unit information for value

axisAxis

axis for which information is being set

Note

axis is not used

Returns
AxisInfo

Information to support default tick labeling

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

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

Parameters
valuestr or iterable

Value or list of values to be converted.

unitUnitData

An object mapping strings to integers.

axisAxis

The axis on which the converted value is plotted.

Note

axis is unused.

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

Set and update the Axis units.

Parameters
datastr or iterable of str
axisAxis

axis on which the data is plotted

Returns
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_mappingdict

Mapping of category names (str) to indices (int).

format_ticks(values)[source]

Return the tick labels for all the ticks at once.

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

Bases: matplotlib.ticker.Locator

Tick at every integer mapping of the string data.

Parameters
units_mappingdict

Mapping of category names (str) to indices (int).

tick_values(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
dataiterable

sequence of string values

update(data)[source]

Map new values to integer identifiers.

Parameters
dataiterable of str or bytes
Raises
TypeError

If elements in data are neither str nor bytes.