matplotlib.units#

Die hier enthaltenen Klassen bieten Unterstützung für die Verwendung benutzerdefinierter Klassen mit Matplotlib, z. B. für solche, die keine Array-Schnittstelle bereitstellen, aber wissen, wie sie sich selbst in Arrays umwandeln können. Sie unterstützt auch Klassen mit Einheiten und Einheitenkonvertierungen. Anwendungsfälle umfassen Konverter für benutzerdefinierte Objekte, z. B. eine Liste von Datetime-Objekten, sowie für Objekte, die einheitenbewusst sind. Wir gehen von keiner bestimmten Einheitenimplementierung aus; vielmehr muss eine Einheitenimplementierung mit dem Konverter-Dictionary der Registry registriert werden und eine ConversionInterface bereitstellen. Hier ist beispielsweise eine vollständige Implementierung, die das Plotten mit nativen Datetime-Objekten unterstützt.

import matplotlib.units as units
import matplotlib.dates as dates
import matplotlib.ticker as ticker
import datetime

class DateConverter(units.ConversionInterface):

    @staticmethod
    def convert(value, unit, axis):
        "Convert a datetime value to a scalar or array."
        return dates.date2num(value)

    @staticmethod
    def axisinfo(unit, axis):
        "Return major and minor tick locators and formatters."
        if unit != 'date':
            return None
        majloc = dates.AutoDateLocator()
        majfmt = dates.AutoDateFormatter(majloc)
        return units.AxisInfo(majloc=majloc, majfmt=majfmt, label='date')

    @staticmethod
    def default_units(x, axis):
        "Return the default unit for x or None."
        return 'date'

# Finally we register our object type with the Matplotlib units registry.
units.registry[datetime.date] = DateConverter()
class matplotlib.units.AxisInfo(majloc=None, minloc=None, majfmt=None, minfmt=None, label=None, default_limits=None)[source]#

Bases: object

Informationen zur Unterstützung von Standard-Achsenbeschriftungen, Beschriftungen von Achsenpunkten und Grenzen.

Eine Instanz dieser Klasse muss von ConversionInterface.axisinfo zurückgegeben werden.

Parameter:
majloc, minlocLocator, optional

Tick-Locator für die Haupt- und Nebenticks.

majfmt, minfmtFormatter, optional

Tick-Formatierer für die Haupt- und Nebenticks.

labelstr, optional

Die standardmäßige Achsenbeschriftung.

default_limitsoptional

Die Standard-Min- und Max-Grenzen der Achse, wenn keine Daten geplottet wurden.

Anmerkungen

Wenn einer der obigen Werte None ist, verwendet die Achse einfach den Standardwert.

exception matplotlib.units.ConversionError[source]#

Bases: TypeError

class matplotlib.units.ConversionInterface[source]#

Bases: object

Die minimale Schnittstelle für einen Konverter zur Umwandlung benutzerdefinierter Datentypen (oder Sequenzen) in Werte, die Matplotlib verwenden kann.

static axisinfo(unit, axis)[source]#

Gibt eine AxisInfo für die Achse mit der angegebenen Einheit zurück.

static convert(obj, unit, axis)[source]#

Konvertiert obj unter Verwendung von unit für die angegebene axis.

Wenn obj eine Sequenz ist, geben Sie die konvertierte Sequenz zurück. Die Ausgabe muss eine Sequenz von Skalaren sein, die von der Numpy-Array-Schicht verwendet werden können.

static default_units(x, axis)[source]#

Gibt die Standardeinheit für x oder None für die gegebene Achse zurück.

class matplotlib.units.DecimalConverter[source]#

Bases: ConversionInterface

Konverter für decimal.Decimal-Daten nach Float.

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

Konvertiert Decimals in Floats.

Die Argumente unit und axis werden nicht verwendet.

Parameter:
valuedecimal.Decimal oder iterierbar

Decimal oder Liste von Decimal, die konvertiert werden müssen

class matplotlib.units.Registry[source]#

Bases: dict

Registriert Typen mit der Konvertierungsschnittstelle.

get_converter(x)[source]#

Gibt die Konverter-Schnittstelleninstanz für x zurück oder None.