matplotlib.dates
#
Matplotlib bietet ausgeklügelte Funktionen zum Zeichnen von Datumsangaben, die auf den Schultern von Python datetime
und 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.datetime64
ist:
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)
Siehe auch
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.datetime
Objekten, 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_epoch
oder
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:
Konvertieren Sie eine Datumszeichenfolge mithilfe von in ein Datumum |
|
Konvertieren Sie datetime-Objekte in Matplotlib-Daten. |
|
Konvertieren Sie Matplotlib-Daten in |
|
Konvertieren Sie die Anzahl der Tage in ein |
|
Gibt eine Folge von Matplotlib-Daten mit gleichem Abstand zurück. |
|
Legen Sie die Epoche (Ursprung für Datumsangaben) für Datum/Uhrzeit-Berechnungen fest. |
|
Holen Sie sich die Epoche, die von verwendet wird |
Notiz
Wie Python datetime.datetime
verwendet 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.tzinfo
Instanz 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.ticker
fü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:
MicrosecondLocator
: Suchen Sie Mikrosekunden.SecondLocator
: Suchen Sie Sekunden.MinuteLocator
: Lokalisieren Sie Minuten.HourLocator
: Stunden finden.DayLocator
: Suchen Sie bestimmte Tage des Monats.WeekdayLocator
: Suchen Sie nach Wochentagen, z. B. MO, TU.MonthLocator
: Lokalisieren Sie Monate, z. B. 7 für Juli.YearLocator
: Lokalisieren Sie Jahre, die ein Vielfaches der Basis sind.RRuleLocator
: Suchen Sie mit einemrrulewrapper
.rrulewrapper
ist ein einfacher Wrapper um dateutil ,dateutil.rrule
der fast beliebige Datumsangaben erlaubt. Siehe Regelbeispiel .AutoDateLocator
: Bei der automatischen Skalierung wählt diese Klasse das BesteDateLocator
aus (z. B.RRuleLocator
), um die Anzeigegrenzen und die Tick-Positionen festzulegen. Wenn es damit aufgerufeninterval_multiples=True
wird, werden Ticks mit vernünftigen Vielfachen der Tick-Intervalle ausgerichtet. Wenn das Intervall beispielsweise 4 Stunden beträgt, werden die Stunden 0, 4, 8 usw. als Ticks ausgewählt. Dieses Verhalten wird standardmäßig nicht garantiert.
Datumsformatierer #
Die verfügbaren Datumsformatierer sind:
AutoDateFormatter
: versucht herauszufinden, welches Format am besten geeignet ist. Dies ist am nützlichsten, wenn es mit verwendet wirdAutoDateLocator
.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 wirdAutoDateLocator
.DateFormatter
: Verwendenstrftime
Sie 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 wirdAutoDateLocator
.AutoDateFormatter
hat ein.scale
Wörterbuch, das Tick-Skalen (das Intervall in Tagen zwischen einem großen Tick) auf Formatzeichenfolgen abbildet; Dieses Wörterbuch ist standardmäßig aufself.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 :
- Lokalisierer
ticker.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 istlocator._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.scaled
als Funktionen gesetzt sind, dann ist es Sache der benutzerdefinierten Funktion, den mathematischen Modus von TeX selbst zu aktivieren oder zu deaktivieren.
- Lokalisierer
- 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
DateLocator
aus, 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.
- tz str oder
- 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,
axis
rufen 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
- 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 wirdAutoDateLocator
:>>> locator = AutoDateLocator() >>> formatter = ConciseDateFormatter(locator)
- Parameter :
- Lokalisierer
ticker.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.
- Lokalisierer
Beispiele
Siehe Datumsmarkierungen mit ConciseDateFormatter formatieren
Formatieren Sie die Datumsbeschriftungen automatisch. Das Standardformat wird verwendet, um eine Anfangszeichenfolge zu bilden, und dann werden redundante Elemente entfernt.
- Klasse matplotlib.dates. DateConverter ( * , interval_multiples = True ) [Quelle] #
Basen:
ConversionInterface
Konverter für
datetime.date
unddatetime.datetime
-Daten oder für Datums-/Uhrzeitdaten, die so dargestellt werden, als würden sie durch konvertiert werdendate2num
.Das 'unit'-Tag für solche Daten ist None oder eine tzinfo-Instanz.
- axisinfo ( Einheit , Achse ) [Quelle] #
Geben Sie die
AxisInfo
for -Einheit zurück .unit ist eine tzinfo-Instanz oder None. Das Achsenargument ist erforderlich, wird aber nicht verwendet.
- Klasse matplotlib.dates. DateFormatter ( fmt , tz = None , * , usetex = None ) [Quelle] #
Basen:
Formatter
Formatieren Sie einen Tick (in Tagen seit der Epoche) mit einer
strftime
Formatzeichenfolge.- Parameter :
- fmt str
strftime
Zeichenfolge 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.
- 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
.
- tz str oder
- 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
.
- tz str oder
- 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_epoch
auf 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_data_interval ( vmin , vmax ) [Quelle] #
[ Veraltet ]
Anmerkungen
Veraltet seit Version 3.5: Verwenden Sie
Axis.set_data_interval
stattdessen.
- set_view_interval ( vmin , vmax ) [Quelle] #
[ Veraltet ]
Anmerkungen
Veraltet seit Version 3.5: Verwenden Sie
Axis.set_view_interval
stattdessen.
- 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,
axis
rufen 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
.
- tz str oder
- 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,
axis
rufen 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 denmatplotlib.dates
Namensraum 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.datetime
odernumpy.datetime64
oder Sequenzen davon
- d
- Rückgaben :
- Float oder Folge von Floats
Anzahl der Tage seit der Epoche. Siehe
get_epoch
für die Epoche, die durchrcParams["date.epoch"]
(Standard:'1970-01-01T00:00:00'
) oder geändert werden kannset_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, dend
datetime
Die Datumsgrenzen.
- Delta
datetime.timedelta
Abstand der Daten.
- dstart, dend
- 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
datetime
Objekte.- Parameter :
- x Gleitkommazahl oder Folge von Gleitkommazahlen
Anzahl der Tage (Bruchteil repräsentiert Stunden, Minuten, Sekunden) seit der Epoche. Siehe
get_epoch
für die Epoche, die durchrcParams["date.epoch"]
(Standard:'1970-01-01T00:00:00'
) oder geändert werden kannset_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 :
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
timedelta
Objekt.Wenn x eine Sequenz ist, wird eine Sequenz von
timedelta
Objekten zurückgegeben.- Parameter :
- x Float, Folge von Floats
Anzahl der Tage. Der Bruchteil steht für Stunden, Minuten, Sekunden.
- Rückgaben :
datetime.timedelta
oder 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:
Jahr
Monat
Tag
Std
Protokoll
Sekunden
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.relativedelta
Objekt 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änglichmatplotlib.dates
.- tzinfo
datetime.tzinfo
, optional Informationen zur Zeitzone. Der Standardwert ist Keine.
- **Kwarg
Zusätzliche Schlüsselwortargumente werden an die
dateutil.rrule
.
- 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_epoch
muss 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).