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: ConversionInterface
-
static axisinfo(unit, axis)[source]
Set 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
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.
- unit
UnitData
An object mapping strings to integers.
- axis
Axis
The axis on which the converted value is plotted.
- Returns:
- float or ndarray[float]
-
static default_units(data, axis)[source]
Set and update the Axis
units.
- Parameters:
- datastr or iterable of str
- axis
Axis
axis on which the data is plotted
- Returns:
UnitData
object storing string to integer mapping
-
class matplotlib.category.StrCategoryFormatter(units_mapping)[source]
Bases: 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: 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.