matplotlib.dates
#
datetime
Matplotlib は、pythonとアドオン モジュールdateutilの肩の上に立って、洗練された日付プロット機能を提供します。
デフォルトでは、Matplotlib は で説明されている単位機構を使用し
units
て変換datetime.datetime
し、numpy.datetime64
オブジェクトを x 軸または y 軸にプロットします。ユーザーは、日付をフォーマットするために何もする必要はありませんが、日付には厳密なフォーマットが必要な場合が多いため、このモジュールは多くの軸ロケーターとフォーマッターを提供します。使用する基本的な例numpy.datetime64
は次のとおりです。
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 の日付形式#
Matplotlib は、1970-01-01 UTC のデフォルト エポックからの日数を指定する浮動小数点数を使用して日付を表します。たとえば、1970-01-01, 06:00 は浮動小数点数 0.25 です。フォーマッタとロケータではdatetime.datetime
オブジェクトを使用する必要があるため、0001 年から 9999 年までの日付のみを表すことができます。マイクロ秒の精度は、エポックの両側で (およそ) 70 年間達成可能であり、残りの許容範囲の日付 (0001 年から 9999 年) では 20 マイクロ秒です。dates.set_epoch
エポックは、必要に応じて、インポート時に、または
rcParams["dates.epoch"]
他の日付に変更できます。議論については、日付の精度とエポックを参照
してください。
ノート
Matplotlib 3.3 より前では、エポックは 0000-12-31 であり、最新のマイクロ秒の精度が失われ、デフォルトの軸制限 0 が無効な日時になりました。3.3 では、エポックが上記のように変更されました。古い序数浮動小数点数を新しいエポックに変換するには、次のようにします。
new_ordinal = old_ordinal + mdates.date2num(np.datetime64('0000-12-31'))
datetime
オブジェクトと Matplotlib の日付の間で変換するヘルパー関数がいくつかあります。
を使用して、日付文字列を datenum に変換します |
|
datetime オブジェクトを Matplotlib の日付に変換します。 |
|
Matplotlib の日付を |
|
日数を |
|
等間隔の一連の Matplotlib 日付を返します。 |
|
日時計算のエポック (日付の起点) を設定します。 |
|
によって使用されるエポックを取得し |
ノート
Python の と同様datetime.datetime
に、Matplotlib は日付と浮動小数点数の間のすべての変換にグレゴリオ暦を使用します。この慣行は普遍的なものではなく、カレンダーの違いにより、Python と Matplotlib が 0001-01-01 からの日数として与えるものと、他のソフトウェアやデータベースが与えるものとの間に混乱を招く違いが生じる可能性があります。たとえば、米国海軍天文台では、1582 年 10 月にユリウス暦からグレゴリオ暦に切り替わるカレンダーを使用しています。したがって、計算機を使用すると、0001-01-01 から 2006-04-01 までの日数は 732403 になります。見つけたdatetimeモジュールを介したカレンダー:
In [1]: date(2006, 4, 1).toordinal() - date(1, 1, 1).toordinal()
Out[1]: 732401
すべての Matplotlib 日付コンバーター、ティッカー、フォーマッターはタイムゾーンに対応しています。明示的なタイムゾーンが指定されていない場合、rcParams["timezone"]
(デフォルト: 'UTC'
) が想定され、文字列として指定されます。別のタイムゾーンを使用する場合は、作成した日付ティッカーまたはロケーターにtzキーワード引数を渡します。num2date
これは、datetime.tzinfo
で解析できるタイムゾーン名を持つインスタンスまたは文字列のいずれかgettz
です。
このモジュールでは、幅広い特定および汎用の日付ティックロケーターとフォーマッターが提供されています。matplotlib.ticker
目盛りロケーターとフォーマッターの一般的な情報については、を参照
してください。これらについて以下に説明します。
dateutilモジュールは、日付の刻みを処理する追加のコードを提供し、あらゆる種類の日付に刻みを簡単に配置できるようにします。以下の例を参照してください。
日付ティッカー#
ほとんどの日付ティッカーは、1 つまたは複数の値を見つけることができます。例えば:
# 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))
さらに、ほとんどのコンストラクターは間隔引数を取ります。
# tick on mondays every second week
loc = WeekdayLocator(byweekday=MO, interval=2)
rrule ロケータでは、完全に一般的な日付の刻みが可能です。
# tick every 5th easter
rule = rrulewrapper(YEARLY, byeaster=1, interval=5)
loc = RRuleLocator(rule)
利用可能な日付ティッカーは次のとおりです。
MicrosecondLocator
: マイクロ秒を見つけます。SecondLocator
: 秒を検索します。MinuteLocator
: 分を検索します。HourLocator
: 時間を見つけます。DayLocator
: 指定された月の日付を見つけます。WeekdayLocator
: MO、TU などの曜日を検索します。MonthLocator
: 月を検索します。たとえば、7 月は 7 です。YearLocator
: 基数の倍数である年を見つけます。RRuleLocator
: を使用して検索しますrrulewrapper
。 ほぼ任意の日付ティック指定を許可するdateutilのrrulewrapper
単純なラッパーです。rrule の例を参照してください。dateutil.rrule
AutoDateLocator
: 自動スケーリングでは、このクラスは最適なものDateLocator
(例:RRuleLocator
) を選択して、ビューの制限と目盛りの位置を設定します。呼び出されinterval_multiples=True
た場合、ティック間隔の適切な倍数でティックを並べます。たとえば、間隔が 4 時間の場合、時間 0、4、8 などがティックとして選択されます。この動作はデフォルトでは保証されていません。
日付フォーマッタ#
利用可能な日付フォーマッタは次のとおりです。
AutoDateFormatter
: 使用するのに最適な形式を見つけようとします。これは、 と一緒に使用すると最も便利ですAutoDateLocator
。ConciseDateFormatter
: また、使用するのに最適な形式を見つけ出し、完全な日付情報を保持しながら形式をできるだけコンパクトにしようとします。これは、 と一緒に使用すると最も便利ですAutoDateLocator
。DateFormatter
:strftime
フォーマット文字列を使用します。
- クラス matplotlib.dates。AutoDateFormatter (ロケータ, tz =なし, defaultfmt = '%Y-%m-%d' , * , usetex =なし) [source] #
拠点:
Formatter
使用する
Formatter
のに最適な形式を見つけようとする 。これは、 と一緒に使用すると最も便利ですAutoDateLocator
。AutoDateFormatter
.scale
ティック スケール (1 つのメジャー ティック間の日数の間隔) をフォーマット文字列にマップする辞書があります。この辞書のデフォルトは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'], }
フォーマッタは、現在のスケール以上である、ディクショナリ内の最小のキーに対応する書式文字列を使用します。ディクショナリ エントリはカスタマイズできます。
locator = AutoDateLocator() formatter = AutoDateFormatter(locator) formatter.scaled[1/(24*60)] = '%M:%S' # only show min and sec
フォーマット文字列の代わりにカスタム callable を使用することもできます。次の例は、カスタム フォーマット関数を使用して 10 進数の秒から末尾のゼロを削除し、日付を最初の目盛りラベルに追加する方法を示しています。
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
日付ラベルをオートフォーマットします。
- パラメータ:
- ロケータ
ticker.Locator
この軸が使用しているロケーター。
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。- defaultfmt文字列
self.scaled
で返される単位よりも大きい値が にない場合に使用する既定の形式locator._get_unit()
。- usetex bool、デフォルト:
rcParams["text.usetex"]
(デフォルト:False
) フォーマッタの結果をレンダリングするための TeX の数学モードの使用を有効/無効にします。のエントリ
self.scaled
が関数として設定されている場合、TeX の数学モード自体を有効または無効にするのはカスタマイズされた関数次第です。
- ロケータ
- クラス matplotlib.dates。AutoDateLocator ( tz =なし, minticks = 5 , maxticks =なし, interval_multiples = True ) [source] #
拠点:
DateLocator
自動スケーリングでは、このクラス
DateLocator
はビューの制限と目盛りの位置を設定するのに最適なものを選択します。- 属性:
- 間隔辞書
そのティックに許可された倍数へのティック周波数のマッピング。デフォルトは
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], }
キーは で定義されてい
dateutil.rrule
ます。間隔は、ティックの頻度に適した倍数を指定するために使用されます。たとえば、毎日の目盛りには 7 日ごとが適切ですが、分/秒の場合は 15 または 30 が適切です。
カスタマイズするときは、既存のキーの値のみを変更する必要があります。エントリを追加または削除しないでください。
3 時間ごとにティックを強制する例:
locator = AutoDateLocator() locator.intervald[HOURLY] = [3] # only show every 3 hours
- パラメータ:
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。- ミンティックint
必要なティックの最小数。ティックが毎年発生するか、毎月発生するかなどを制御します。
- maxticks int
必要なティックの最大数。ティックの間隔を制御します (1 回おき、3 回おきなど)。きめ細かい制御の場合、これは個々の rrule 頻度定数 (YEARLY、MONTHLY など) を独自の最大ティック数にマッピングするディクショナリにすることができます。これは、 で選択した形式に適切なティック数を維持するために使用できます
AutoDateFormatter
。このディクショナリで指定されていない頻度には、デフォルト値が与えられます。- interval_multiples bool、デフォルト: True
ティックを間隔の倍数として選択し、「より適切な」位置にロックするかどうか。たとえば、1 時間ごとのティックが 6 時間間隔で実行される場合、ティックは 0、6、12、18 時間に強制されます。
- tz str または
- クラス matplotlib.dates。ConciseDateConverter ( formats = None , zero_formats = None , offset_formats = None , show_offset = True , * , interval_multiples = True ) [source] #
- クラス matplotlib.dates。ConciseDateFormatter (ロケーター、 tz =なし、フォーマット=なし、 offset_formats =なし、 zero_formats =なし、 show_offset = True、 *、 usetex =なし) [source] #
拠点:
Formatter
Formatter
日付に使用するのに最適な形式を見つけ出し、可能な限りコンパクトにしますが、完全なものにしようとします。これは、 と一緒に使用すると最も便利ですAutoDateLocator
:>>> locator = AutoDateLocator() >>> formatter = ConciseDateFormatter(locator)
- パラメータ:
- ロケータ
ticker.Locator
この軸が使用しているロケーター。
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) に渡されるティックのタイムゾーン
dates.num2date
。- 6 文字列のフォーマットリスト、オプション
主に年、月、日、時、分、秒の 6 レベルの目盛ラベルのフォーマット文字列。文字列は と同じフォーマット コードを使用します
strftime
。デフォルトは['%Y', '%b', '%d', '%H:%M', '%H:%M', '%S.%f']
- zero_formats 6 文字列のリスト、オプション
指定されたティック レベルの「ゼロ」であるティック ラベルの書式文字列。たとえば、ほとんどのティックが月である場合、2005 年 1 月 1 日前後のティックには「12 月」、「2005 年」、「2 月」というラベルが付けられます。デフォルトは
['', '%Y', '%b', '%b-%d', '%H:%M', '%H:%M']
- 6 文字列のoffset_formatsリスト、オプション
x 軸の右側または y 軸の上にある「オフセット」文字列に適用される 6 つのレベルの文字列をフォーマットします。目盛りラベルと組み合わせて、日付を完全に指定する必要があります。デフォルトは次のとおりです。
['', '%Y', '%Y-%b', '%Y-%b-%d', '%Y-%b-%d', '%Y-%b-%d %H:%M']
- show_offset bool、デフォルト: True
オフセットを表示するかどうか。
- usetex bool、デフォルト:
rcParams["text.usetex"]
(デフォルト:False
) フォーマッタの結果をレンダリングするための TeX の数学モードの使用を有効/無効にします。
- ロケータ
例
ConciseDateFormatter を使用した日付ティックのフォーマットを参照してください
日付ラベルをオートフォーマットします。デフォルトの形式を使用して初期文字列を形成し、冗長な要素を削除します。
- クラス matplotlib.dates。DateConverter ( * , interval_multiples = True ) [ソース] #
-
datetime.date
とデータのコンバーターdatetime.datetime
、または によって変換されるように表される日付/時刻データのコンバーターdate2num
。そのようなデータの「ユニット」タグは None または tzinfo インスタンスです。
- クラス matplotlib.dates。DateFormatter ( fmt , tz =なし, * , usetex =なし) [source] #
拠点:
Formatter
フォーマット文字列を使用してティック (エポックからの日数) を
strftime
フォーマットします。- パラメータ:
- fmt str
strftime
フォーマット文字列- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。- usetex bool、デフォルト:
rcParams["text.usetex"]
(デフォルト:False
) フォーマッタの結果をレンダリングするための TeX の数学モードの使用を有効/無効にします。
- クラス matplotlib.dates。DateLocator ( tz =なし) [ソース] #
拠点:
Locator
日付をプロットするときの目盛りの位置を決定します。
このクラスは、他の Locator によってサブクラス化されており、単独で使用するためのものではありません。
- パラメータ:
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- tz str または
- hms0d = {'時': 0, '分': 0, '秒': 0} #
- set_tzinfo ( tz ) [ソース] #
タイムゾーン情報を設定します。
- パラメータ:
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- tz str または
- クラス matplotlib.dates。DayLocator ( bymonthday =なし、間隔= 1、 tz =なし) [source] #
拠点:
RRuleLocator
月の各日の発生に目盛りを付けます。たとえば、1、15、30 です。
- パラメータ:
- bymonthday int または int のリスト、デフォルト: すべての日
ティックはbymonthdayの毎日に配置されます。デフォルトは 、つまり毎日です。
bymonthday=range(1, 32)
- 間隔int、デフォルト: 1
各反復間の間隔。たとえば、 の場合
interval=2
、2 回ごとにマークを付けます。- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- クラス matplotlib.dates。HourLocator ( byhour =なし、間隔= 1、 tz =なし) [ソース] #
拠点:
RRuleLocator
各時間の発生に目盛りを付けます。
- パラメータ:
- byhour int または int のリスト、デフォルト: すべての時間
目盛りはbyhourの毎時間に配置されます。デフォルトは
byhour=range(24)
、つまり毎時です。- 間隔int、デフォルト: 1
各反復間の間隔。たとえば、 の場合
interval=2
、2 回ごとにマークを付けます。- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- クラス matplotlib.dates。MicrosecondLocator ( interval = 1 , tz = None ) [ソース] #
拠点:
DateLocator
1 マイクロ秒以上の定期的な間隔でティックを作成します。
ノート
デフォルトでは、Matplotlib はエポックからの日数の浮動小数点表現を使用するため、マイクロ秒の時間分解能でデータをプロットすると、エポックから離れた (約 70 年) 日付ではうまく機能しません ( で確認してください
get_epoch
)。マイクロ秒未満の解像度の時間プロットが必要な場合は、datetime のような時間表現ではなく、浮動小数点秒を使用することを強くお勧めします。
本当に datetime.datetime() などを使用する必要があり、それでもマイクロ秒の精度が必要な場合は、時間の原点を
dates.set_epoch
、プロットされている日付に近いものに変更してください。日付の精度とエポックを参照してください。- パラメータ:
- 間隔int、デフォルト: 1
各反復間の間隔。たとえば、 の場合
interval=2
、2 回ごとにマークを付けます。- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- set_data_interval ( vmin , vmax ) [ソース] #
[非推奨]
ノート
バージョン 3.5 以降非推奨:
Axis.set_data_interval
代わりに使用してください。
- set_view_interval ( vmin , vmax ) [ソース] #
[非推奨]
ノート
バージョン 3.5 以降非推奨:
Axis.set_view_interval
代わりに使用してください。
- クラス matplotlib.dates。MinuteLocator ( byminute =なし、間隔= 1、 tz =なし) [ソース] #
拠点:
RRuleLocator
毎分の発生に目盛りを付けます。
- パラメータ:
- byminute int または int のリスト、デフォルト: すべての分
目盛りはbyminutesで毎分置かれます。デフォルトは
byminute=range(60)
、つまり毎分です。- 間隔int、デフォルト: 1
各反復間の間隔。たとえば、 の場合
interval=2
、2 回ごとにマークを付けます。- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- クラス matplotlib.dates。MonthLocator ( bymonth =なし、 bymonthday = 1、間隔= 1、 tz =なし) [source] #
拠点:
RRuleLocator
1、3、12 のように、各月に目盛りを付けます。
- パラメータ:
- bymonth int または int のリスト、デフォルト: すべての月
目盛りはbymonthに毎月配置されます。デフォルトは 、つまり毎月です。
range(1, 13)
- bymonthday int、デフォルト: 1
ティックを配置する日。
- 間隔int、デフォルト: 1
各反復間の間隔。たとえば、 の場合
interval=2
、2 回ごとにマークを付けます。- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- クラス matplotlib.dates。RRuleLocator ( o , tz = None ) [ソース] #
拠点:
DateLocator
- パラメータ:
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- tz str または
- クラス matplotlib.dates。SecondLocator ( bysecond =なし、間隔= 1、 tz =なし) [source] #
拠点:
RRuleLocator
1 秒ごとに目盛りを付けます。
- パラメータ:
- bysecond int または int のリスト、デフォルト: すべての秒
目盛りはbysecondで毎秒配置されます。デフォルトは 、つまり毎秒です。
bysecond = range(60)
- 間隔int、デフォルト: 1
各反復間の間隔。たとえば、 の場合
interval=2
、2 回ごとにマークを付けます。- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- クラス matplotlib.dates。WeekdayLocator ( byweekday = 1 , interval = 1 , tz = None ) [source] #
拠点:
RRuleLocator
各平日の発生に目盛りを付けます。
- パラメータ:
- byweekday int または int のリスト、デフォルト: すべての日
byweekdayのすべての平日にティックが配置されます。デフォルトは毎日です。
byweekdayの要素は、名前空間
dateutil.rrule
にインポートされたMO、TU、WE、TH、FR、SA、SU、および の定数のいずれかである必要があります。matplotlib.dates
- 間隔int、デフォルト: 1
各反復間の間隔。たとえば、 の場合
interval=2
、2 回ごとにマークを付けます。- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- クラス matplotlib.dates。YearLocator ( base = 1、 month = 1、 day = 1、 tz = None ) [source] #
拠点:
RRuleLocator
基数の倍数である毎年の特定の日にティックを作成します。
例:
# Tick every year on Jan 1st locator = YearLocator() # Tick every 5 years on July 4th locator = YearLocator(5, month=7, day=4)
- パラメータ:
- 基本整数、デフォルト: 1
基準年ごとに目盛りをマークします。
- 月の整数、デフォルト: 1
ティックを配置する月で、1 から始まります。デフォルトは 1 月です。
- 日int、デフォルト: 1
ティックを配置する日。
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) タイムゾーンを刻みます。文字列の場合、tzが に渡され
dateutil.tz
ます。
- matplotlib.dates. date2num ( d ) [ソース] #
datetime オブジェクトを Matplotlib の日付に変換します。
- パラメータ:
- d
datetime.datetime
またはnumpy.datetime64
これらのシーケンス
- d
- 戻り値:
- フロートまたはフロートのシーケンス
エポックからの日数。(デフォルト: ) または
get_epoch
で変更できるエポックについては、を参照してください。エポックが "1970-01-01T00:00:00" (デフォルト) の場合、1970 年 1 月 1 日の正午 ("1970-01-01T12:00:00") は 0.5 を返します。rcParams["date.epoch"]
'1970-01-01T00:00:00'
set_epoch
ノート
グレゴリオ暦が想定されています。これは普遍的な慣行ではありません。詳細については、モジュールの docstring を参照してください。
- matplotlib.dates. datestr2num ( d、デフォルト= None ) [ソース] #
を使用して、日付文字列を datenum に変換します
dateutil.parser.parse
。- パラメータ:
- d str または str のシーケンス
変換する日付。
- デフォルトの日時.日時、オプション
dにフィールドがない場合に使用するデフォルトの日付。
- matplotlib.dates. drange ( dstart , dend , delta ) [ソース] #
等間隔の一連の Matplotlib 日付を返します。
日付は dstart から始まり、dendを含まずに到達します。それらはdeltaで区切られています。
- パラメータ:
- dstart、dend
datetime
日付制限。
- デルタ
datetime.timedelta
日付の間隔。
- dstart、dend
- 戻り値:
numpy.array
Matplotlib の日付を表すリストフロート。
- matplotlib.dates. epoch2num ( e ) [ソース] #
[非推奨] UNIX 時間を Matplotlib エポックからの日数に変換します。
- パラメータ:
- フロートのリスト
1970-01-01 からの秒数。
- 戻り値:
numpy.array
Matplotlib エポックからの経過日数 ( を参照
get_epoch()
)。
ノート
バージョン 3.5 以降非推奨:代わりに または numpy.datetime64 タイプを使用してください。
[date2num(datetime.utcfromtimestamp(t)) for t in e]
- matplotlib.dates. get_epoch ( ) [ソース] #
によって使用されるエポックを取得し
dates
ます。- 戻り値:
- エポックstr
エポックの文字列 ( で解析可能
numpy.datetime64
)。
- matplotlib.dates. num2date ( x , tz =なし) [ソース] #
Matplotlib の日付を
datetime
オブジェクトに変換します。- パラメータ:
- x float または一連の float
エポックからの日数 (小数部分は時間、分、秒を表します)。(デフォルト: ) または
get_epoch
で変更できるエポックについては、を参照してください。rcParams["date.epoch"]
'1970-01-01T00:00:00'
set_epoch
- tz str または
tzinfo
、デフォルト:rcParams["timezone"]
(デフォルト:'UTC'
) xのタイムゾーン。文字列の場合、tzが に渡され
dateutil.tz
ます。
- 戻り値:
ノート
グレゴリオ暦が想定されています。これは普遍的な慣行ではありません。詳細については、モジュールの docstring を参照してください。
- matplotlib.dates. num2epoch ( d ) [ソース] #
[非推奨] Matplotlib エポックからの日数を UNIX 時間に変換します。
- パラメータ:
- d float のリスト
Matplotlib エポックからの経過日数 ( を参照
get_epoch()
)。
- 戻り値:
numpy.array
1970-01-01 からの秒数。
ノート
バージョン 3.5 以降非推奨:
num2date(e).timestamp()
代わりに使用してください。
- matplotlib.dates. num2timedelta ( x ) [ソース] #
日数を
timedelta
オブジェクトに変換します。xがシーケンスの場合、オブジェクトのシーケンス
timedelta
が返されます。- パラメータ:
- x float、float のシーケンス
日数。小数部分は時、分、秒を表します。
- 戻り値:
datetime.timedelta
またはリスト[datetime.timedelta
]
- クラス matplotlib.dates。relativedelta ( dt1 =なし, dt2 =なし,年= 0 ,月= 0 ,日= 0 ,閏日= 0 ,週= 0 ,時間= 0 ,分= 0 ,秒= 0 ,マイクロ秒= 0 ,年=なし,月=なし, day =なし, weekday =なし, yearday =なし, nlyearday =なし, hour =なし, minutes =なし, second =なし, microsecond =なし)#
拠点:
object
relativedelta 型は、既存の日時に適用されるように設計されており、その日時の特定のコンポーネントを置き換えたり、時間間隔を表すことができます。
M.-A.の優れた作品の仕様に基づいています。彼の mx.DateTime拡張子の Lemburg。ただし、このタイプは彼の作品と同じアルゴリズムを実装していないことに注意してください。mx.DateTimeと同じように動作するとは思わないでください。
relativedelta インスタンスを構築するには、2 つの異なる方法があります。最初のものは、2 つの日付/日時クラスを渡しています。
relativedelta(datetime1, datetime2)
2 つ目は、次のキーワード引数をいくつでも渡します。
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.
キーワード引数には、相対形式と絶対形式があります。複数は相対的、単数は絶対です。以下の順序で各引数に対して、最初に絶対形式が適用され (各属性をその値に設定することによって)、次に相対形式が (属性に値を追加することによって) 適用されます。
この relativedelta が日時に追加されるときに考慮される属性の順序は次のとおりです。
年
月
日
時間
分
秒
マイクロ秒
最後に、上記のルールを使用して、平日が適用されます。
例えば
>>> 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)
最初に日を 1 (月の最初) に設定し、次に 25 時間を追加して 2 日目と 14 時間を取得し、最後に平日を適用しますが、2 日は既に月曜日であるため影響はありません.
- 正規化( ) #
相対属性の整数値を使用して完全に表現されたこのオブジェクトのバージョンを返します。
>>> relativedelta(days=1.5, hours=2).normalized() relativedelta(days=+1, hours=+14)
- 戻り値:
オブジェクトを返し
dateutil.relativedelta.relativedelta
ます。
- プロパティの 週数
- クラス matplotlib.dates。rrulewrapper ( freq , tzinfo = None , ** kwargs ) [source] #
拠点:
object
dateutil.rrule
柔軟な日付ティック指定を可能にする単純なラッパー。- パラメータ:
- freq {YEARLY、MONTHLY、WEEKLY、DAILY、HOURLY、MINUTELY、SECONDLY}
ティック頻度。これらの定数は で定義され
dateutil.rrule
ていますが、 からもアクセスできますmatplotlib.dates
。- tzinfo
datetime.tzinfo
、オプション タイムゾーン情報。デフォルトはなしです。
- **kwargs
追加のキーワード引数が に渡されます
dateutil.rrule
。
- matplotlib.dates. set_epoch (エポック) [ソース] #
日時計算のエポック (日付の起点) を設定します。
デフォルトのエポックは
rcParams["dates.epoch"]
(デフォルトでは 1970-01-01T00:00) です。マイクロ秒の精度が必要な場合、プロットされる日付はエポックから約 70 年以内である必要があります。Matplotlib は内部的に日付をエポックからの日数として表すため、浮動小数点のダイナミック レンジは 2^52 の係数内である必要があります。
set_epoch
日付が変換される前 (つまり、インポート セクションの近く) に呼び出す必要があります。そうしないと、RuntimeError が発生します。日付の精度とエポックも参照してください。
- パラメータ:
- エポックstr
解析可能な有効な UTC 日付
numpy.datetime64
(タイムゾーンを含まない)。