matplotlib.dates#

Vererbungsdiagramm von matplotlib.dates

Matplotlib bietet ausgeklügelte Funktionen zum Zeichnen von Datumsangaben, die auf den Schultern von Python datetimeund dem Zusatzmodul dateutil stehen .

Standardmäßig verwendet Matplotlib die in beschriebene Einheitenmaschinerie units, um datetime.datetime, und numpy.datetime64 Objekte umzuwandeln, wenn sie auf einer x- oder y-Achse dargestellt werden. Der Benutzer muss nichts tun, um Datumsangaben zu formatieren, aber Datumsangaben haben oft strenge Formatierungsanforderungen, daher bietet dieses Modul viele Achsenlokalisierer und Formatierer. Ein grundlegendes Beispiel für die Verwendung numpy.datetime64ist:

import numpy as np

times = np.arange(np.datetime64('2001-01-02'),
                  np.datetime64('2002-02-03'), np.timedelta64(75, 'm'))
y = np.random.randn(len(times))

fig, ax = plt.subplots()
ax.plot(times, y)

Matplotlib-Datumsformat #

Matplotlib stellt Daten mit Gleitkommazahlen dar, die die Anzahl der Tage seit einer Standardepoche von 1970-01-01 UTC angeben; Beispielsweise ist 1970-01-01, 06:00 die Gleitkommazahl 0,25. Die Formatierer und Lokalisierer erfordern die Verwendung von datetime.datetimeObjekten, sodass nur Daten zwischen den Jahren 0001 und 9999 dargestellt werden können. Mikrosekundengenauigkeit ist für (ungefähr) 70 Jahre auf beiden Seiten der Epoche erreichbar, und 20 Mikrosekunden für den Rest des zulässigen Datumsbereichs (Jahr 0001 bis 9999). Die Epoche kann bei Bedarf zum Zeitpunkt des Imports über dates.set_epochoder rcParams["dates.epoch"]auf andere Daten geändert werden; Siehe Datumsgenauigkeit und Epochen für eine Diskussion.

Notiz

Vor Matplotlib 3.3 war die Epoche 0000-12-31, was die moderne Mikrosekunden-Präzision verlor und auch die Standard-Achsengrenze von 0 zu einer ungültigen Datumszeit machte. In 3.3 wurde die Epoche wie oben geändert. Um alte ordinale Floats in die neue Epoche umzuwandeln, können Benutzer Folgendes tun:

new_ordinal = old_ordinal + mdates.date2num(np.datetime64('0000-12-31'))

Es gibt eine Reihe von Hilfsfunktionen zum Konvertieren zwischen datetime Objekten und Matplotlib-Daten:

datestr2num

Konvertieren Sie eine Datumszeichenfolge mithilfe von in ein Datumum dateutil.parser.parse.

date2num

Konvertieren Sie datetime-Objekte in Matplotlib-Daten.

num2date

Konvertieren Sie Matplotlib-Daten in datetimeObjekte.

num2timedelta

Konvertieren Sie die Anzahl der Tage in ein timedeltaObjekt.

drange

Gibt eine Folge von Matplotlib-Daten mit gleichem Abstand zurück.

set_epoch

Legen Sie die Epoche (Ursprung für Datumsangaben) für Datum/Uhrzeit-Berechnungen fest.

get_epoch

Holen Sie sich die Epoche, die von verwendet wird dates.

Notiz

Wie Python datetime.datetimeverwendet Matplotlib den gregorianischen Kalender für alle Konvertierungen zwischen Datumsangaben und Gleitkommazahlen. Diese Praxis ist nicht universell, und Kalenderunterschiede können zu verwirrenden Unterschieden zwischen dem führen, was Python und Matplotlib als Anzahl der Tage seit dem 01.01.0001 angeben, und dem, was andere Software und Datenbanken liefern. Zum Beispiel verwendet das US Naval Observatory einen Kalender, der im Oktober 1582 von Julianisch auf Gregorianisch umschaltet. Daher beträgt die Anzahl der Tage zwischen dem 01.01.0001 und dem 01.04.2006 bei Verwendung ihres Rechners 732403, während bei Verwendung des Gregorianischen Kalenders 732403 verwendet werden Kalender über das Datetime-Modul finden wir:

In [1]: date(2006, 4, 1).toordinal() - date(1, 1, 1).toordinal()
Out[1]: 732401

Alle Matplotlib-Datumskonverter, Ticker und Formatierer sind zeitzonenbewusst. Wenn keine explizite Zeitzone angegeben wird, wird rcParams["timezone"](Standard: 'UTC') angenommen und als Zeichenfolge bereitgestellt. Wenn Sie eine andere Zeitzone verwenden möchten, übergeben Sie das Schlüsselwortargument tznum2date an alle von Ihnen erstellten Datumsticker oder Locators. Dies kann entweder eine datetime.tzinfoInstanz oder eine Zeichenfolge mit dem Namen der Zeitzone sein, die von analysiert werden kann gettz.

In diesem Modul wird eine große Auswahl an spezifischen und allgemeinen Datumstick-Lokatoren und -Formatierern bereitgestellt. Siehe matplotlib.tickerfür allgemeine Informationen zu Tick-Locators und -Formattern. Diese werden im Folgenden beschrieben.

Das dateutil -Modul stellt zusätzlichen Code zur Verfügung, um das Datums-Ticking zu handhaben, wodurch es einfach wird, Häkchen an beliebige Datumsangaben zu setzen. Siehe Beispiele unten.

Datumsticker #

Die meisten Datumsticker können einzelne oder mehrere Werte lokalisieren. Zum Beispiel:

# import constants for the days of the week
from matplotlib.dates import MO, TU, WE, TH, FR, SA, SU

# tick on mondays every week
loc = WeekdayLocator(byweekday=MO, tz=tz)

# tick on mondays and saturdays
loc = WeekdayLocator(byweekday=(MO, SA))

Darüber hinaus verwenden die meisten Konstruktoren ein Intervallargument:

# tick on mondays every second week
loc = WeekdayLocator(byweekday=MO, interval=2)

Der Regel-Locator erlaubt ein ganz allgemeines Datums-Ticking:

# tick every 5th easter
rule = rrulewrapper(YEARLY, byeaster=1, interval=5)
loc = RRuleLocator(rule)

Die verfügbaren Datumsticker sind:

Datumsformatierer #

Die verfügbaren Datumsformatierer sind:

  • AutoDateFormatter: versucht herauszufinden, welches Format am besten geeignet ist. Dies ist am nützlichsten, wenn es mit verwendet wird AutoDateLocator.

  • ConciseDateFormatter: versucht auch, das beste zu verwendende Format herauszufinden und das Format so kompakt wie möglich zu machen, während es dennoch vollständige Datumsinformationen enthält. Dies ist am nützlichsten, wenn es mit verwendet wird AutoDateLocator.

  • DateFormatter: Verwenden strftimeSie Formatzeichenfolgen.

Klasse matplotlib.dates. AutoDateFormatter ( locator , tz = None , defaultfmt = '%Y-%m-%d' , * , usetex = None ) [Quelle] #

Basen:Formatter

A Formatter, das versucht, das beste zu verwendende Format herauszufinden. Dies ist am nützlichsten, wenn es mit verwendet wird AutoDateLocator.

AutoDateFormatterhat ein .scaleWörterbuch, das Tick-Skalen (das Intervall in Tagen zwischen einem großen Tick) auf Formatzeichenfolgen abbildet; Dieses Wörterbuch ist standardmäßig auf

self.scaled = {
    DAYS_PER_YEAR: rcParams['date.autoformatter.year'],
    DAYS_PER_MONTH: rcParams['date.autoformatter.month'],
    1: rcParams['date.autoformatter.day'],
    1 / HOURS_PER_DAY: rcParams['date.autoformatter.hour'],
    1 / MINUTES_PER_DAY: rcParams['date.autoformatter.minute'],
    1 / SEC_PER_DAY: rcParams['date.autoformatter.second'],
    1 / MUSECONDS_PER_DAY: rcParams['date.autoformatter.microsecond'],
}

Der Formatierer verwendet die Formatzeichenfolge, die dem niedrigsten Schlüssel im Wörterbuch entspricht, der größer oder gleich der aktuellen Tonleiter ist. Wörterbucheinträge können angepasst werden:

locator = AutoDateLocator()
formatter = AutoDateFormatter(locator)
formatter.scaled[1/(24*60)] = '%M:%S' # only show min and sec

Anstelle von Formatzeichenfolgen können auch benutzerdefinierte Callables verwendet werden. Das folgende Beispiel zeigt, wie Sie eine benutzerdefinierte Formatfunktion verwenden, um nachgestellte Nullen von Dezimalsekunden zu entfernen und das Datum zum ersten Ticklabel hinzuzufügen:

def my_format_function(x, pos=None):
    x = matplotlib.dates.num2date(x)
    if pos == 0:
        fmt = '%D %H:%M:%S.%f'
    else:
        fmt = '%H:%M:%S.%f'
    label = x.strftime(fmt)
    label = label.rstrip("0")
    label = label.rstrip(".")
    return label

formatter.scaled[1/(24*60)] = my_format_function

Formatieren Sie die Datumsbeschriftungen automatisch.

Parameter :
Lokalisiererticker.Locator

Locator, den diese Achse verwendet.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

defaultfmtstr _

Das zu verwendende Standardformat, wenn keiner der Werte in self.scaled größer als die von zurückgegebene Einheit ist locator._get_unit().

usetex bool, Standard: rcParams["text.usetex"](Standard: False)

Zum Aktivieren/Deaktivieren der Verwendung des mathematischen Modus von TeX zum Rendern der Ergebnisse des Formatierers. Wenn Einträge in self.scaledals Funktionen gesetzt sind, dann ist es Sache der benutzerdefinierten Funktion, den mathematischen Modus von TeX selbst zu aktivieren oder zu deaktivieren.

Klasse matplotlib.dates. AutoDateLocator ( tz = None , Minticks = 5 , Maxticks = None , interval_multiples = True ) [Quelle] #

Basen:DateLocator

Bei der automatischen Skalierung wählt diese Klasse die besten DateLocatoraus, um die Anzeigebeschränkungen und die Tick-Positionen festzulegen.

Attribute :
Intervall Diktat

Zuordnung von Tickfrequenzen zu Vielfachen, die für dieses Ticking zulässig sind. Die Voreinstellung ist

self.intervald = {
    YEARLY  : [1, 2, 4, 5, 10, 20, 40, 50, 100, 200, 400, 500,
               1000, 2000, 4000, 5000, 10000],
    MONTHLY : [1, 2, 3, 4, 6],
    DAILY   : [1, 2, 3, 7, 14, 21],
    HOURLY  : [1, 2, 3, 4, 6, 12],
    MINUTELY: [1, 5, 10, 15, 30],
    SECONDLY: [1, 5, 10, 15, 30],
    MICROSECONDLY: [1, 2, 5, 10, 20, 50, 100, 200, 500,
                    1000, 2000, 5000, 10000, 20000, 50000,
                    100000, 200000, 500000, 1000000],
}

wo die Schlüssel in definiert sind dateutil.rrule.

Das Intervall wird verwendet, um Vielfache anzugeben, die für die Häufigkeit des Tickens geeignet sind. Zum Beispiel ist alle 7 Tage für tägliche Ticks sinnvoll, aber für Minuten/Sekunden sind 15 oder 30 sinnvoll.

Beim Anpassen sollten Sie nur die Werte für die vorhandenen Schlüssel ändern. Sie sollten keine Einträge hinzufügen oder löschen.

Beispiel für das Erzwingen von Ticks alle 3 Stunden:

locator = AutoDateLocator()
locator.intervald[HOURLY] = [3]  # only show every 3 hours
Parameter :
tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Minze int

Die gewünschte Mindestanzahl von Ticks; steuert, ob Ticks jährlich, monatlich usw.

maxticks int

Die maximale Anzahl der gewünschten Ticks; steuert das Intervall zwischen Ticks (Ticking alle 2, alle 3, etc.). Für eine feinkörnige Steuerung kann dies ein Wörterbuch sein, das einzelne Regelhäufigkeitskonstanten (JÄHRLICH, MONATLICH usw.) auf ihre eigene maximale Anzahl von Ticks abbildet. Dies kann verwendet werden, um die Anzahl der Ticks für das in gewählte Format angemessen zu halten AutoDateFormatter. Jede Frequenz, die nicht in diesem Wörterbuch angegeben ist, erhält einen Standardwert.

interval_multiples bool, Standard: True

Ob Ticks so gewählt werden sollen, dass sie ein Vielfaches des Intervalls sind, um sie an „schöneren“ Orten zu fixieren. Dies zwingt beispielsweise die Ticks zu den Stunden 0, 6, 12, 18, wenn das stündliche Ticking in 6-Stunden-Intervallen erfolgt.

get_locator ( dmin , dmax ) [Quelle] #

Wählen Sie den besten Locator basierend auf einer Entfernung aus.

Nichtsingular ( vmin , vmax ) [Quelle] #

Passen Sie angesichts der vorgeschlagenen oberen und unteren Ausdehnung den Bereich an, wenn er zu nah am Singular liegt (dh ein Bereich von ~0).

tick_values ​​( vmin , vmax ) [Quelle] #

Gibt die Werte der lokalisierten Ticks bei vmin und vmax zurück .

Notiz

Um Tick-Positionen mit den automatisch für die zugehörigen vmin- und vmax-Werte definierten vmin- und vmax-Werten zu erhalten, axisrufen Sie einfach die Locator-Instanz auf:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
Klasse matplotlib.dates. ConciseDateConverter ( formats = None , zero_formats = None , offset_formats = None , show_offset = True , * , interval_multiples = True ) [Quelle] #

Basen:DateConverter

axisinfo ( Einheit , Achse ) [Quelle] #

Geben Sie die AxisInfofor -Einheit zurück .

unit ist eine tzinfo-Instanz oder None. Das Achsenargument ist erforderlich, wird aber nicht verwendet.

Klasse matplotlib.dates. ConciseDateFormatter ( Locator , tz = None , Formats = None , offset_formats = None , zero_formats = None , show_offset = True , * , usetex = None ) [Quelle] #

Basen:Formatter

Eine Formatter, die versucht, das beste Format für das Datum herauszufinden und es so kompakt wie möglich zu machen, aber dennoch vollständig ist. Dies ist am nützlichsten, wenn es mit verwendet wird AutoDateLocator:

>>> locator = AutoDateLocator()
>>> formatter = ConciseDateFormatter(locator)
Parameter :
Lokalisiererticker.Locator

Locator, den diese Achse verwendet.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone, übergeben an dates.num2date.

formatiert Liste mit 6 Zeichenketten, optional

Formatstrings für 6 Ebenen der Tick-Beschriftung: meistens Jahre, Monate, Tage, Stunden, Minuten und Sekunden. Zeichenfolgen verwenden dieselben Formatcodes wie strftime. Standard ist ['%Y', '%b', '%d', '%H:%M', '%H:%M', '%S.%f']

zero_formats Liste mit 6 Zeichenketten, optional

Formatzeichenfolgen für Tick-Beschriftungen, die für ein bestimmtes Tick-Level „Nullen“ sind. Wenn beispielsweise die meisten Ticks Monate sind, werden Ticks um den 1. Januar 2005 herum mit „Dec“, „2005“, „Feb“ bezeichnet. Die Voreinstellung ist ['', '%Y', '%b', '%b-%d', '%H:%M', '%H:%M']

offset_formats Liste mit 6 Zeichenketten, optional

Formatzeichenfolgen für die 6 Ebenen, die auf die „Offset“-Zeichenfolge angewendet werden, die sich auf der rechten Seite einer x-Achse oder oben auf einer y-Achse befindet. In Kombination mit den Häkchenbeschriftungen sollte dies das Datum vollständig angeben. Die Voreinstellung ist:

['', '%Y', '%Y-%b', '%Y-%b-%d', '%Y-%b-%d', '%Y-%b-%d %H:%M']
show_offset bool, Standard: True

Ob der Offset angezeigt werden soll oder nicht.

usetex bool, Standard: rcParams["text.usetex"](Standard: False)

Zum Aktivieren/Deaktivieren der Verwendung des mathematischen Modus von TeX zum Rendern der Ergebnisse des Formatierers.

Beispiele

Siehe Datumsmarkierungen mit ConciseDateFormatter formatieren

( Quellcode , png )

../_images/dates_api-1.png

Formatieren Sie die Datumsbeschriftungen automatisch. Das Standardformat wird verwendet, um eine Anfangszeichenfolge zu bilden, und dann werden redundante Elemente entfernt.

format_data_short ( wert ) [Quelle] #

Gibt eine kurze Zeichenfolgenversion des Tick-Werts zurück.

Standardmäßig der positionsunabhängige Long-Wert.

format_ticks ( Werte ) [Quelle] #

Geben Sie die Tick-Labels für alle Ticks auf einmal zurück.

get_offset ( ) [Quelle] #
Klasse matplotlib.dates. DateConverter ( * , interval_multiples = True ) [Quelle] #

Basen:ConversionInterface

Konverter für datetime.dateund datetime.datetime-Daten oder für Datums-/Uhrzeitdaten, die so dargestellt werden, als würden sie durch konvertiert werden date2num.

Das 'unit'-Tag für solche Daten ist None oder eine tzinfo-Instanz.

axisinfo ( Einheit , Achse ) [Quelle] #

Geben Sie die AxisInfofor -Einheit zurück .

unit ist eine tzinfo-Instanz oder None. Das Achsenargument ist erforderlich, wird aber nicht verwendet.

statische Konvertierung ( Wert , Einheit , Achse ) [Quelle] #

Wenn Wert nicht bereits eine Zahl oder Zahlenfolge ist, konvertieren Sie ihn mit date2num.

Die Einheits- und Achsenargumente werden nicht verwendet.

static default_units ( x , Achse ) [Quelle] #

Gibt die tzinfo-Instanz von x oder seines ersten Elements oder None zurück

Klasse matplotlib.dates. DateFormatter ( fmt , tz = None , * , usetex = None ) [Quelle] #

Basen:Formatter

Formatieren Sie einen Tick (in Tagen seit der Epoche) mit einer strftimeFormatzeichenfolge.

Parameter :
fmt str

strftimeZeichenfolge formatieren

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

usetex bool, Standard: rcParams["text.usetex"](Standard: False)

Zum Aktivieren/Deaktivieren der Verwendung des mathematischen Modus von TeX zum Rendern der Ergebnisse des Formatierers.

set_tzinfo ( tz ) [Quelle] #
Klasse matplotlib.dates. DateLocator ( tz = None ) [Quelle] #

Basen:Locator

Bestimmt die Tick-Positionen beim Plotten von Datumsangaben.

Diese Klasse wird von anderen Locators untergeordnet und ist nicht dazu gedacht, alleine verwendet zu werden.

Parameter :
tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

datalim_to_dt ( ) [Quelle] #

Konvertieren Sie das Achsendatenintervall in datetime-Objekte.

hms0d = {'byhour': 0, 'byminute': 0, 'bysecond': 0} #
Nichtsingular ( vmin , vmax ) [Quelle] #

Passen Sie angesichts der vorgeschlagenen oberen und unteren Ausdehnung den Bereich an, wenn er zu nah am Singular liegt (dh ein Bereich von ~0).

set_tzinfo ( tz ) [Quelle] #

Zeitzoneninformationen einstellen.

Parameter :
tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

viewlim_to_dt ( ) [Quelle] #

Konvertieren Sie das Ansichtsintervall in datetime-Objekte.

Klasse matplotlib.dates. DayLocator ( bymonthday = None , interval = 1 , tz = None ) [source] #

Basen:RRuleLocator

Machen Sie Häkchen bei Vorkommnissen an jedem Tag des Monats. Zum Beispiel 1, 15, 30.

Parameter :
bymonthday int oder list of int, Standard: alle Tage

Häkchen werden jeden Tag in bymonthday gesetzt . Standard ist , dh jeden Tag des Monats.bymonthday=range(1, 32)

Intervall int, Standard: 1

Das Intervall zwischen jeder Iteration. Wenn beispielsweise interval=2, markieren Sie jedes zweite Vorkommen.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Klasse matplotlib.dates. HourLocator ( byhour = None , interval = 1 , tz = None ) [Quelle] #

Basen:RRuleLocator

Machen Sie Häkchen bei Vorkommen jeder Stunde.

Parameter :
byhour int oder list of int, Standard: alle Stunden

Häkchen werden jede Stunde in byhour gesetzt . Standard ist byhour=range(24), dh jede Stunde.

Intervall int, Standard: 1

Das Intervall zwischen jeder Iteration. Wenn beispielsweise interval=2, markieren Sie jedes zweite Vorkommen.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Klasse matplotlib.dates. MicrosecondLocator ( Intervall = 1 , tz = None ) [Quelle] #

Basen:DateLocator

Machen Sie Ticks in regelmäßigen Abständen von einer oder mehreren Mikrosekunden.

Notiz

Standardmäßig verwendet Matplotlib eine Fließkommadarstellung der Zeit in Tagen seit der Epoche, daher funktioniert das Zeichnen von Daten mit Mikrosekunden-Zeitauflösung nicht gut für Daten, die weit (etwa 70 Jahre) von der Epoche entfernt sind (überprüfen Sie mit get_epoch).

Wenn Sie Zeitdiagramme mit einer Auflösung von weniger als einer Mikrosekunde wünschen, wird dringend empfohlen, Fließkomma-Sekunden zu verwenden, keine datetime-ähnliche Zeitdarstellung.

Wenn Sie unbedingt datetime.datetime() oder ähnliches verwenden müssen und dennoch eine Genauigkeit im Mikrosekundenbereich benötigen, ändern Sie den Zeitursprung über dates.set_epochauf etwas, das näher an den gezeichneten Daten liegt. Siehe Datumsgenauigkeit und Epochen .

Parameter :
Intervall int, Standard: 1

Das Intervall zwischen jeder Iteration. Wenn beispielsweise interval=2, markieren Sie jedes zweite Vorkommen.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

set_axis ( Achse ) [Quelle] #
set_data_interval ( vmin , vmax ) [Quelle] #

[ Veraltet ]

Anmerkungen

Veraltet seit Version 3.5: Verwenden Sie Axis.set_data_intervalstattdessen.

set_view_interval ( vmin , vmax ) [Quelle] #

[ Veraltet ]

Anmerkungen

Veraltet seit Version 3.5: Verwenden Sie Axis.set_view_intervalstattdessen.

tick_values ​​( vmin , vmax ) [Quelle] #

Gibt die Werte der lokalisierten Ticks bei vmin und vmax zurück .

Notiz

Um Tick-Positionen mit den automatisch für die zugehörigen vmin- und vmax-Werte definierten vmin- und vmax-Werten zu erhalten, axisrufen Sie einfach die Locator-Instanz auf:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
Klasse matplotlib.dates. MinuteLocator ( byminute = None , interval = 1 , tz = None ) [source] #

Basen:RRuleLocator

Machen Sie Häkchen bei Vorkommen jeder Minute.

Parameter :
byminute int oder list of int, Standard: alle Minuten

Häkchen werden jede Minute in Minuten gesetzt . Standard ist byminute=range(60), dh jede Minute.

Intervall int, Standard: 1

Das Intervall zwischen jeder Iteration. Wenn beispielsweise interval=2, markieren Sie jedes zweite Vorkommen.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Klasse matplotlib.dates. MonthLocator ( bymonth = None , bymonthday = 1 , interval = 1 , tz = None ) [Quelle] #

Basen:RRuleLocator

Machen Sie Häkchen bei den Ereignissen jedes Monats, z. B. 1, 3, 12.

Parameter :
bymonth int oder list of int, Standard: alle Monate

Häkchen werden jeden Monat in bymonth gesetzt . Standard ist , dh jeden Monat.range(1, 13)

bymonthday int, Standard: 1

Der Tag, an dem die Häkchen gesetzt werden.

Intervall int, Standard: 1

Das Intervall zwischen jeder Iteration. Wenn beispielsweise interval=2, markieren Sie jedes zweite Vorkommen.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Klasse matplotlib.dates. RRuleLocator ( o , tz = None ) [Quelle] #

Basen:DateLocator

Parameter :
tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

static get_unit_generic ( freq ) [Quelle] #
tick_values ​​( vmin , vmax ) [Quelle] #

Gibt die Werte der lokalisierten Ticks bei vmin und vmax zurück .

Notiz

Um Tick-Positionen mit den automatisch für die zugehörigen vmin- und vmax-Werte definierten vmin- und vmax-Werten zu erhalten, axisrufen Sie einfach die Locator-Instanz auf:

>>> print(type(loc))
<type 'Locator'>
>>> print(loc())
[1, 2, 3, 4]
Klasse matplotlib.dates. SecondLocator ( bysecond = None , interval = 1 , tz = None ) [source] #

Basen:RRuleLocator

Machen Sie Häkchen bei Vorkommen jeder Sekunde.

Parameter :
bysecond int oder list of int, Standard: alle Sekunden

Häkchen werden jede Sekunde in bysecond gesetzt . Standard ist , dh jede Sekunde.bysecond = range(60)

Intervall int, Standard: 1

Das Intervall zwischen jeder Iteration. Wenn beispielsweise interval=2, markieren Sie jedes zweite Vorkommen.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Klasse matplotlib.dates. WeekdayLocator ( byweekday = 1 , interval = 1 , tz = None ) [Quelle] #

Basen:RRuleLocator

Machen Sie Häkchen bei Vorkommen jedes Wochentags.

Parameter :
byweekday int oder list of int, Standard: alle Tage

Häkchen werden an jedem Wochentag in byweekday gesetzt . Standard ist jeden Tag.

Elemente von byweekday müssen MO, TU, WE, TH, FR, SA, SU sein, die Konstanten von dateutil.rrule, die in den matplotlib.datesNamensraum importiert wurden.

Intervall int, Standard: 1

Das Intervall zwischen jeder Iteration. Wenn beispielsweise interval=2, markieren Sie jedes zweite Vorkommen.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Klasse matplotlib.dates. YearLocator ( base = 1 , month = 1 , day = 1 , tz = None ) [Quelle] #

Basen:RRuleLocator

Machen Sie Ticks an einem bestimmten Tag jedes Jahres, der ein Vielfaches der Basis ist.

Beispiele:

# Tick every year on Jan 1st
locator = YearLocator()

# Tick every 5 years on July 4th
locator = YearLocator(5, month=7, day=4)
Parameter :
Basis int, Standard: 1

Markieren Sie Ticks alle Basisjahre .

Monat int, Standard: 1

Der Monat, in dem die Häkchen gesetzt werden, beginnend am 1. Standard ist Januar.

Tag int, Standard: 1

Der Tag, an dem die Häkchen gesetzt werden.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Tickt die Zeitzone. Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

matplotlib.dates. date2num ( d ) [Quelle] #

Konvertieren Sie datetime-Objekte in Matplotlib-Daten.

Parameter :
d datetime.datetimeoder numpy.datetime64oder Sequenzen davon
Rückgaben :
Float oder Folge von Floats

Anzahl der Tage seit der Epoche. Siehe get_epochfür die Epoche, die durch rcParams["date.epoch"](Standard: '1970-01-01T00:00:00') oder geändert werden kann set_epoch. Wenn die Epoche "1970-01-01T00:00:00" (Standardeinstellung) ist, gibt der 1. Januar 1970 mittags ("1970-01-01T12:00:00") 0,5 zurück.

Anmerkungen

Es wird der gregorianische Kalender angenommen; dies ist keine universelle Praxis. Einzelheiten finden Sie im Modul docstring.

matplotlib.dates. datestr2num ( d , Standard = None ) [Quelle] #

Konvertieren Sie eine Datumszeichenfolge mithilfe von in ein Datumum dateutil.parser.parse.

Parameter :
d str oder Folge von str

Die zu konvertierenden Daten.

Standard -datetime.datetime, optional

Das Standarddatum, das verwendet werden soll, wenn Felder in d fehlen .

matplotlib.dates. drange ( dstart , dend , delta ) [Quelle] #

Gibt eine Folge von Matplotlib-Daten mit gleichem Abstand zurück.

Die Datumsangaben beginnen bei dstart und reichen bis einschließlich dend . Sie sind um Delta beabstandet .

Parameter :
dstart, denddatetime

Die Datumsgrenzen.

Deltadatetime.timedelta

Abstand der Daten.

Rückgaben :
numpy.array

Eine schwebende Liste, die Matplotlib-Daten darstellt.

matplotlib.dates. epoch2num ( e ) [Quelle] #

[ Veraltet ] Konvertiert die UNIX-Zeit in Tage seit der Matplotlib-Epoche.

Parameter :
Die Liste der Schwimmer

Zeit in Sekunden seit dem 01.01.1970.

Rückgaben :
numpy.array

Zeit in Tagen seit der Matplotlib-Epoche (siehe get_epoch()).

Anmerkungen

Veraltet seit Version 3.5: Verwenden Sie stattdessen die Typen oder numpy.datetime64.[date2num(datetime.utcfromtimestamp(t)) for t in e]

matplotlib.dates. get_epoch ( ) [Quelle] #

Holen Sie sich die Epoche, die von verwendet wird dates.

Rückgaben :
Epoche _

String für die Epoche (parsbar durch numpy.datetime64).

matplotlib.dates. num2date ( x , tz = None ) [Quelle] #

Konvertieren Sie Matplotlib-Daten in datetimeObjekte.

Parameter :
x Gleitkommazahl oder Folge von Gleitkommazahlen

Anzahl der Tage (Bruchteil repräsentiert Stunden, Minuten, Sekunden) seit der Epoche. Siehe get_epochfür die Epoche, die durch rcParams["date.epoch"](Standard: '1970-01-01T00:00:00') oder geändert werden kann set_epoch.

tz str oder tzinfo, Standard: rcParams["timezone"](Standard: 'UTC')

Zeitzone von x . Wenn es sich um eine Zeichenfolge handelt, wird tz an übergeben dateutil.tz.

Rückgaben :
datetimeoder Folge vondatetime

Datumsangaben werden in der Zeitzone tz zurückgegeben .

Wenn x eine Sequenz ist, wird eine Sequenz von datetimeObjekten zurückgegeben.

Anmerkungen

Es wird der gregorianische Kalender angenommen; dies ist keine universelle Praxis. Einzelheiten finden Sie im Modul docstring.

matplotlib.dates. num2epoch ( d ) [Quelle] #

[ Veraltet ] Konvertiert Tage seit der Matplotlib-Epoche in UNIX-Zeit.

Parameter :
d Liste der Gleitkommazahlen

Zeit in Tagen seit der Matplotlib-Epoche (siehe get_epoch()).

Rückgaben :
numpy.array

Zeit in Sekunden seit dem 01.01.1970.

Anmerkungen

Veraltet seit Version 3.5: Verwenden Sie num2date(e).timestamp()stattdessen.

matplotlib.dates. num2timedelta ( x ) [Quelle] #

Konvertieren Sie die Anzahl der Tage in ein timedeltaObjekt.

Wenn x eine Sequenz ist, wird eine Sequenz von timedeltaObjekten zurückgegeben.

Parameter :
x Float, Folge von Floats

Anzahl der Tage. Der Bruchteil steht für Stunden, Minuten, Sekunden.

Rückgaben :
datetime.timedeltaoder Liste[ datetime.timedelta]
Klasse matplotlib.dates. relativedelta ( dt1 = Keine , dt2 = Keine , Jahre = 0 , Monate = 0 , Tage = 0 , Schalttage = 0 , Wochen = 0 , Stunden = 0 , Minuten = 0 , Sekunden = 0 , Mikrosekunden = 0 , Jahr = Keine , Monat= None , day = None , weekday = None , yearday = None , nyearday = None , hour = None , minute = None , second = None , microsecond = None )#

Basen:object

Der relativedelta-Typ wurde entwickelt, um auf eine vorhandene Datumszeit angewendet zu werden, und kann bestimmte Komponenten dieser Datumszeit ersetzen oder ein Zeitintervall darstellen.

Es basiert auf der Spezifikation der hervorragenden Arbeit von M.-A. Lemburg in seiner mx.DateTime- Erweiterung. Beachten Sie jedoch, dass dieser Typ NICHT denselben Algorithmus wie seine Arbeit implementiert. Erwarten Sie NICHT , dass es sich wie das Gegenstück von mx.DateTime verhält.

Es gibt zwei verschiedene Möglichkeiten, eine relativedelta-Instanz zu erstellen. Die erste übergibt ihr zwei date/datetime-Klassen:

relativedelta(datetime1, datetime2)

Der zweite übergibt ihm eine beliebige Anzahl der folgenden Schlüsselwortargumente:

relativedelta(arg1=x,arg2=y,arg3=z...)

year, month, day, hour, minute, second, microsecond:
    Absolute information (argument is singular); adding or subtracting a
    relativedelta with absolute information does not perform an arithmetic
    operation, but rather REPLACES the corresponding value in the
    original datetime with the value(s) in relativedelta.

years, months, weeks, days, hours, minutes, seconds, microseconds:
    Relative information, may be negative (argument is plural); adding
    or subtracting a relativedelta with relative information performs
    the corresponding arithmetic operation on the original datetime value
    with the information in the relativedelta.

weekday: 
    One of the weekday instances (MO, TU, etc) available in the
    relativedelta module. These instances may receive a parameter N,
    specifying the Nth weekday, which could be positive or negative
    (like MO(+1) or MO(-2)). Not specifying it is the same as specifying
    +1. You can also use an integer, where 0=MO. This argument is always
    relative e.g. if the calculated date is already Monday, using MO(1)
    or MO(-1) won't change the day. To effectively make it absolute, use
    it in combination with the day argument (e.g. day=1, MO(1) for first
    Monday of the month).

leapdays:
    Will add given days to the date found, if year is a leap
    year, and the date found is post 28 of february.

yearday, nlyearday:
    Set the yearday or the non-leap year day (jump leap days).
    These are converted to day/month/leapdays information.

Es gibt relative und absolute Formen der Schlüsselwortargumente. Der Plural ist relativ und der Singular ist absolut. Für jedes Argument in der folgenden Reihenfolge wird zuerst die absolute Form angewendet (indem jedes Attribut auf diesen Wert gesetzt wird) und dann die relative Form (indem der Wert zum Attribut hinzugefügt wird).

Die Reihenfolge der berücksichtigten Attribute, wenn dieses relative Delta zu einer Datumszeit hinzugefügt wird, ist:

  1. Jahr

  2. Monat

  3. Tag

  4. Std

  5. Protokoll

  6. Sekunden

  7. Mikrosekunden

Schließlich wird der Wochentag angewendet, wobei die oben beschriebene Regel verwendet wird.

Zum Beispiel

>>> from datetime import datetime
>>> from dateutil.relativedelta import relativedelta, MO
>>> dt = datetime(2018, 4, 9, 13, 37, 0)
>>> delta = relativedelta(hours=25, day=1, weekday=MO(1))
>>> dt + delta
datetime.datetime(2018, 4, 2, 14, 37)

Zuerst wird der Tag auf 1 gesetzt (der erste des Monats), dann werden 25 Stunden addiert, um auf den 2. Tag und die 14. Stunde zu kommen, schließlich wird der Wochentag übernommen, aber da der 2. bereits ein Montag ist, gibt es keine Auswirkung .

normalisiert ( ) #

Gibt eine Version dieses Objekts zurück, die vollständig mit ganzzahligen Werten für die relativen Attribute dargestellt wird.

>>> relativedelta(days=1.5, hours=2).normalized()
relativedelta(days=+1, hours=+14)
Rückgaben :

Gibt ein dateutil.relativedelta.relativedeltaObjekt zurück.

Immobilienwochen # _
Klasse matplotlib.dates. rrulewrapper ( freq , tzinfo = None , ** kwargs ) [Quelle] #

Basen:object

Ein einfacher Wrapper dateutil.rrule, der flexible Datumsangaben ermöglicht.

Parameter :
freq {JÄHRLICH, MONATLICH, WÖCHENTLICH, TÄGLICH, STÜNDLICH, MINUTENJÄHRLICH, SEKUNDLICH}

Tickfrequenz. Diese Konstanten sind in definiert dateutil.rrule, aber sie sind auch über zugänglich matplotlib.dates.

tzinfo datetime.tzinfo, optional

Informationen zur Zeitzone. Der Standardwert ist Keine.

**Kwarg

Zusätzliche Schlüsselwortargumente werden an die dateutil.rrule.

set ( ** kwargs ) [Quelle] #

Legen Sie Parameter für einen vorhandenen Wrapper fest.

matplotlib.dates. set_epoch ( Epoche ) [Quelle] #

Legen Sie die Epoche (Ursprung für Datumsangaben) für Datum/Uhrzeit-Berechnungen fest.

Die Standardepoche ist rcParams["dates.epoch"](standardmäßig 1970-01-01T00:00).

Wenn eine Genauigkeit im Mikrosekundenbereich gewünscht wird, muss das gezeichnete Datum innerhalb von etwa 70 Jahren der Epoche liegen. Matplotlib stellt Daten intern als Tage seit der Epoche dar, daher muss der Gleitkomma-Dynamikbereich innerhalb eines Faktors von 2 ^ 52 liegen.

set_epochmuss aufgerufen werden, bevor Daten konvertiert werden (dh in der Nähe des Importabschnitts), oder es wird ein RuntimeError ausgelöst.

Siehe auch Datumsgenauigkeit und Epochen .

Parameter :
Epoche _

gültiges UTC-Datum, das analysiert werden kann numpy.datetime64(ohne Zeitzone).