matplotlib.dates
#
datetime
Matplotlib는 Python 및 애드온 모듈 dateutil 의 어깨에 서서 정교한 날짜 플로팅 기능을 제공합니다 .
기본적으로 Matplotlib는 에 설명된 단위 기계를 사용
하여 x축 또는 y축에 플롯할 때 개체 를 units
변환 합니다. 사용자는 날짜 형식을 지정하기 위해 아무 것도 할 필요가 없지만 날짜는 종종 엄격한 형식 지정이 필요하므로 이 모듈은 많은 축 로케이터와 형식기를 제공합니다. 사용하는 기본적인 예 는 다음과 같습니다.datetime.datetime
numpy.datetime64
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년 사이의 날짜만 나타낼 수 있습니다. 마이크로초 정밀도는 epoch의 양쪽에서 (대략) 70년 동안 달성할 수 있고 나머지 허용 가능한 날짜 범위(0001년에서 9999년)에 대해 20마이크로초 동안 달성할 수 있습니다. 에포크는 필요한 경우 가져올 때 dates.set_epoch
또는
rcParams["dates.epoch"]
다른 날짜로 변경할 수 있습니다. 자세한 내용은
Date Precision and Epochs 를 참조하십시오.
메모
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 날짜 시퀀스를 반환합니다. |
|
datetime 계산을 위한 epoch(날짜의 시작)를 설정합니다. |
|
에서 사용하는 시대를 가져옵니다 |
메모
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 모듈 은 날짜 틱을 처리하는 추가 코드를 제공하여 모든 종류의 날짜에 틱을 쉽게 배치할 수 있도록 합니다. 아래 예를 참조하십시오.
날짜 표시기 #
대부분의 날짜 티커는 단일 또는 다중 값을 찾을 수 있습니다. 예를 들어:
# 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
간단한 래퍼 입니다. 규칙 예를 참조하십시오 .dateutil.rrule
AutoDateLocator
: 자동 크기 조정에서 이 클래스는 보기 제한과 눈금 위치를 설정하기 위해 가장 좋은 것DateLocator
(예: )을 선택합니다.RRuleLocator
그것 으로 호출interval_multiples=True
되면 틱 간격의 합리적인 배수로 틱이 정렬됩니다. 예를 들어 간격이 4시간이면 0, 4, 8시 등을 틱으로 선택합니다. 이 동작은 기본적으로 보장되지 않습니다.
날짜 포맷터 #
사용 가능한 날짜 포맷터는 다음과 같습니다.
AutoDateFormatter
: 사용할 최상의 형식을 파악하려고 시도합니다. 와 함께 사용할 때 가장 유용합니다AutoDateLocator
.ConciseDateFormatter
: 또한 사용할 최상의 형식을 파악하고 완전한 날짜 정보를 유지하면서 형식을 가능한 한 간결하게 만들려고 시도합니다. 와 함께 사용할 때 가장 유용합니다AutoDateLocator
.DateFormatter
:strftime
형식 문자열을 사용합니다.
- 클래스 matplotlib.dates. AutoDateFormatter ( locator , tz = None , defaultfmt = '%Y-%m-%d' , * , usetex = None ) [출처] #
베이스:
Formatter
Formatter
사용할 최상의 형식을 파악하려고 시도하는 A. 와 함께 사용할 때 가장 유용합니다AutoDateLocator
.AutoDateFormatter
.scale
틱 스케일(주요 틱 사이의 일수 간격)을 형식 문자열에 매핑 하는 사전이 있습니다. 이 사전의 기본값은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
형식 문자열 대신 사용자 지정 콜러블을 사용할 수도 있습니다. 다음 예제는 사용자 지정 형식 함수를 사용하여 십진수 초에서 후행 0을 제거하고 첫 번째 눈금 레이블에 날짜를 추가하는 방법을 보여줍니다.
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()
입니다.- 유텍스 부울, 기본값:
rcParams["text.usetex"]
(기본값:False
) 포맷터의 결과를 렌더링하기 위해 TeX의 수학 모드 사용을 활성화/비활성화합니다. 항목
self.scaled
이 함수로 설정된 경우 TeX의 수학 모드 자체를 활성화 또는 비활성화하는 것은 사용자 정의된 함수에 달려 있습니다.
- 토지 경계 설정자
- 클래스 matplotlib.dates. AutoDateLocator ( tz = 없음 , minticks = 5 , maxticks = 없음 , interval_multiples = True ) [출처] #
베이스:
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
원하는 최소 틱 수입니다. 진드기가 매년, 매월 등으로 발생하는지 여부를 제어합니다.
- 최대값 정수
원하는 최대 틱 수입니다. 틱 사이의 간격을 제어합니다(매 틱, 매 3 등). 세밀한 제어를 위해 개별 규칙 빈도 상수(YEARLY, MONTHLY 등)를 자체 최대 틱 수에 매핑하는 사전이 될 수 있습니다. 에서 선택한 형식에 적합한 틱 수를 유지하는 데 사용할 수 있습니다
AutoDateFormatter
. 이 사전에 지정되지 않은 모든 빈도에는 기본값이 제공됩니다.- interval_multiples 부울, 기본값: 참
틱을 간격의 배수로 선택하여 '더 좋은' 위치에 고정해야 하는지 여부입니다. 예를 들어, 6시간 간격으로 시간별 틱이 수행될 때 틱이 0, 6, 12, 18시에 강제로 표시됩니다.
- tz str 또는
- 클래스 matplotlib.dates. ConciseDateConverter ( 형식 = 없음 , zero_formats = 없음 , offset_formats = 없음 , show_offset = True , * , interval_multiples = True ) [소스] #
베이스:
DateConverter
- 클래스 matplotlib.dates. ConciseDateFormatter ( 로케이터 , tz = 없음 , 형식 = 없음 , offset_formats = 없음 , zero_formats = 없음 , show_offset = True , * , usetex = 없음 ) [소스] #
베이스:
Formatter
A
Formatter
는 날짜에 사용할 최상의 형식을 파악하고 가능한 한 간결하게 만들지만 여전히 완전합니다. 이는 다음과 함께 사용할 때 가장 유용합니다AutoDateLocator
.>>> locator = AutoDateLocator() >>> formatter = ConciseDateFormatter(locator)
- 매개변수 :
- 토지 경계 설정자
ticker.Locator
이 축이 사용 중인 로케이터입니다.
- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) Ticks 시간대, 에 전달됨
dates.num2date
.- 6개 문자열의 형식 목록, 선택 사항
눈금 레이블의 6개 수준에 대한 형식 문자열: 주로 연도, 월, 일, 시, 분, 초. 문자열은 와 동일한 형식 코드를 사용합니다
strftime
. 기본값은['%Y', '%b', '%d', '%H:%M', '%H:%M', '%S.%f']
- 6개 문자열의 zero_formats 목록, 선택 사항
주어진 눈금 수준에 대해 "0"인 눈금 레이블의 문자열을 포맷합니다. 예를 들어, 대부분의 진드기가 월인 경우 2005년 1월 1일경의 진드기는 "Dec", "2005", "Feb"로 레이블이 지정됩니다. 기본값은
['', '%Y', '%b', '%b-%d', '%H:%M', '%H:%M']
- offset_formats 6개 문자열 목록, 선택 사항
x축 오른쪽 또는 y축 상단에 있는 "오프셋" 문자열에 적용되는 6개 수준에 대한 형식 문자열입니다. 눈금 레이블과 결합하여 날짜를 완전히 지정해야 합니다. 기본값은 다음과 같습니다.
['', '%Y', '%Y-%b', '%Y-%b-%d', '%Y-%b-%d', '%Y-%b-%d %H:%M']
- show_offset 부울, 기본값: True
오프셋 표시 여부입니다.
- 유텍스 부울, 기본값:
rcParams["text.usetex"]
(기본값:False
) 포맷터의 결과를 렌더링하기 위해 TeX의 수학 모드 사용을 활성화/비활성화합니다.
- 토지 경계 설정자
예
ConciseDateFormatter를 사용하여 날짜 눈금 서식 지정을 참조하세요 .
날짜 레이블을 자동으로 포맷합니다. 기본 형식은 초기 문자열을 형성하는 데 사용되며 중복 요소는 제거됩니다.
- 클래스 matplotlib.dates. DateConverter ( * , interval_multiples = True ) [소스] #
-
datetime.date
및 데이터에 대한 변환기datetime.datetime
또는 날짜/시간 데이터에 대한 변환기는date2num
.이러한 데이터의 'unit' 태그는 None 또는 tzinfo 인스턴스입니다.
- 클래스 matplotlib.dates. DateFormatter ( fmt , tz = 없음 , * , usetex = 없음 ) [출처] #
베이스:
Formatter
형식 문자열 을 사용하여 눈금(신기원 이후 일 수)을
strftime
형식화합니다.- 매개변수 :
- fmt str
strftime
형식 문자열- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.- 유텍스 부울, 기본값:
rcParams["text.usetex"]
(기본값:False
) 포맷터의 결과를 렌더링하기 위해 TeX의 수학 모드 사용을 활성화/비활성화합니다.
- 클래스 matplotlib.dates. DateLocator ( tz = 없음 ) [출처] #
베이스:
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 = 없음 ) [출처] #
베이스:
RRuleLocator
매월 매일 발생하는 틱을 확인합니다. 예: 1, 15, 30.
- 매개변수 :
- bymonthday int 또는 int 목록, 기본값: all days
틱은 bymonthday 의 매일에 배치됩니다 . 기본값은 , 즉 매월 매일입니다.
bymonthday=range(1, 32)
- 간격 int, 기본값: 1
각 반복 사이의 간격입니다. 예를 들어 이면
interval=2
두 번째 발생마다 표시합니다.- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.
- 클래스 matplotlib.dates. HourLocator ( byhour = None , interval = 1 , tz = None ) [출처] #
베이스:
RRuleLocator
각 시간의 발생에 진드기를 확인합니다.
- 매개변수 :
- byhour int 또는 int 목록, 기본값: 모든 시간
틱은 byhour 에서 매시간 배치됩니다 . 기본값은
byhour=range(24)
, 즉 매시간입니다.- 간격 int, 기본값: 1
각 반복 사이의 간격입니다. 예를 들어 이면
interval=2
두 번째 발생마다 표시합니다.- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.
- 클래스 matplotlib.dates. MicrosecondLocator ( 간격 = 1 , tz = 없음 ) [출처] #
베이스:
DateLocator
하나 이상의 마이크로초(들)의 일정한 간격으로 틱을 만듭니다.
메모
기본적으로 Matplotlib는 에포크 이후 일 단위의 부동 소수점 표현을 사용하므로 마이크로초 시간 해상도로 데이터를 플로팅하는 것은 에포크에서 멀리(약 70년) 떨어진 날짜에 대해 제대로 작동하지 않습니다( 로 확인
get_epoch
).마이크로초 미만의 분해능 시간 플롯을 원하는 경우 날짜/시간과 같은 시간 표현이 아닌 부동 소수점 초를 사용하는 것이 좋습니다.
실제로 datetime.datetime() 또는 이와 유사한 것을 사용해야 하고 여전히 마이크로초 정밀도가 필요한 경우
dates.set_epoch
플롯되는 날짜에 더 가까운 것으로 시간 원점을 변경하십시오. 날짜 정밀도 및 Epochs 를 참조하십시오 .- 매개변수 :
- 간격 int, 기본값: 1
각 반복 사이의 간격입니다. 예를 들어 이면
interval=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 ( 분 단위 = 없음 , 간격 = 1 , tz = 없음 ) [출처] #
베이스:
RRuleLocator
매 분마다 발생하는 틱을 확인합니다.
- 매개변수 :
- byminute int 또는 int 목록, 기본값: 모든 분
틱은 byminutes 에서 매분마다 배치됩니다 . 기본값은
byminute=range(60)
, 즉 매분입니다.- 간격 int, 기본값: 1
각 반복 사이의 간격입니다. 예를 들어 이면
interval=2
두 번째 발생마다 표시합니다.- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.
- 클래스 matplotlib.dates. MonthLocator ( bymonth = 없음 , bymonthday = 1 , 간격 = 1 , tz = 없음 ) [출처] #
베이스:
RRuleLocator
1, 3, 12와 같이 매월 발생하는 항목에 체크 표시를 합니다.
- 매개변수 :
- bymonth int 또는 int 목록, 기본값: 모든 달
틱은 매월 bymonth 에 배치됩니다 . 기본값은 , 즉 매월입니다.
range(1, 13)
- bymonthday int, 기본값: 1
진드기를 배치할 날짜입니다.
- 간격 int, 기본값: 1
각 반복 사이의 간격입니다. 예를 들어 이면
interval=2
두 번째 발생마다 표시합니다.- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.
- 클래스 matplotlib.dates. RRuleLocator ( o , tz = 없음 ) [출처] #
베이스:
DateLocator
- 매개변수 :
- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.
- tz str 또는
- 클래스 matplotlib.dates. SecondLocator ( bysecond = None , interval = 1 , tz = None ) [소스] #
베이스:
RRuleLocator
매초마다 틱을 만듭니다.
- 매개변수 :
- 초 단위 정수 또는 정수 목록, 기본값: 모든 초
틱은 매초마다 배치됩니다 bysecond . 기본값은 , 즉 매초입니다.
bysecond = range(60)
- 간격 int, 기본값: 1
각 반복 사이의 간격입니다. 예를 들어 이면
interval=2
두 번째 발생마다 표시합니다.- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.
- 클래스 matplotlib.dates. WeekdayLocator ( byweekday = 1 , 간격 = 1 , tz = 없음 ) [소스] #
베이스:
RRuleLocator
각 평일의 발생에 진드기를 확인합니다.
- 매개변수 :
- byweekday int 또는 int 목록, 기본값: 모든 요일
틱은 byweekday 에서 매주 평일에 배치됩니다 . 기본값은 매일입니다.
byweekday 의 요소
dateutil.rrule
는 네임스페이스로 가져온 MO, TU, WE, TH, FR, SA, SU 중 하나여야 합니다matplotlib.dates
.- 간격 int, 기본값: 1
각 반복 사이의 간격입니다. 예를 들어 이면
interval=2
두 번째 발생마다 표시합니다.- tz str 또는
tzinfo
, 기본값:rcParams["timezone"]
(기본값:'UTC'
) 시간대를 틱합니다. 문자열인 경우 tz 가 에 전달됩니다
dateutil.tz
.
- 클래스 matplotlib.dates. YearLocator ( 기준 = 1 , 월 = 1 , 일 = 1 , tz = 없음 ) [소스] #
베이스:
RRuleLocator
기본의 배수인 매년 주어진 날짜에 진드기를 만드십시오.
예:
# Tick every year on Jan 1st locator = YearLocator() # Tick every 5 years on July 4th locator = YearLocator(5, month=7, day=4)
- 매개변수 :
- 기본 정수, 기본값: 1
기본 연도 마다 마크 틱 .
- 월 int, 기본값: 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 , 기본값 = 없음 ) [소스] #
를 사용하여 날짜 문자열을 datenum으로 변환합니다
dateutil.parser.parse
.- 매개변수 :
- d str 또는 str의 시퀀스
변환할 날짜입니다.
- 기본 datetime.datetime, 선택사항
필드가 d 에서 누락된 경우 사용할 기본 날짜 입니다.
- matplotlib.dates. drange ( dstart , dend , delta ) [소스] #
균일한 간격의 Matplotlib 날짜 시퀀스를 반환합니다.
날짜는 dstart 에서 시작하여 최대에 도달하지만 dend는 포함하지 않습니다 . 간격은 delta 입니다.
- 매개변수 :
- dstart, 덴드
datetime
날짜 제한.
- 델타
datetime.timedelta
날짜 간격.
- dstart, 덴드
- 반환 :
numpy.array
Matplotlib 날짜를 나타내는 목록이 떠 있습니다.
- matplotlib.dates. epoch2num ( e ) [출처] #
[ Deprecated ] UNIX 시간을 Matplotlib epoch 이후 날짜로 변환합니다.
- 매개변수 :
- 수레 목록
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
.- 반환 :
- 신기원 _
epoch에 대한 문자열입니다( 에서 구문 분석 가능
numpy.datetime64
).
- matplotlib.dates. num2date ( x , tz = 없음 ) [소스] #
Matplotlib 날짜를
datetime
객체로 변환합니다.- 매개변수 :
- x 부동 소수점 또는 부동 소수점 시퀀스
에포크 이후의 일수(소수 부분은 시, 분, 초를 나타냄)입니다. (기본값: ) 또는
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 ) [출처] #
[ Deprecated ] Matplotlib epoch 이후 날짜를 UNIX 시간으로 변환합니다.
- 매개변수 :
- d 플로트 목록
Matplotlib 시대 이후의 시간(일)입니다( 참조
get_epoch()
).
- 반환 :
numpy.array
1970-01-01 이후의 시간(초)입니다.
메모
버전 3.5부터 사용되지 않음: 대신 사용하십시오
num2date(e).timestamp()
.
- matplotlib.dates. num2timedelta ( x ) [소스] #
일 수를
timedelta
개체로 변환합니다.x 가 시퀀스이면 객체 시퀀스
timedelta
가 반환됩니다.- 매개변수 :
- x float, float 시퀀스
일 수. 분수 부분은 시, 분, 초를 나타냅니다.
- 반환 :
- 클래스 matplotlib.dates. relativedelta ( dt1 = 없음 , dt2 = 없음 , 년 = 0 , 개월 = 0 , 일 = 0 , 윤일 = 0 , 주 = 0 , 시간 = 0 , 분 = 0 , 초 = 0 , 마이크로초 = 0 , 년 = 없음 , 월= None , day = None , weekday = None , yearday = None , nlyearday = None , hour = None , minute = None , second = None , microsecond = None )#
베이스:
object
relativedelta 유형은 기존 datetime에 적용되도록 설계되었으며 해당 datetime의 특정 구성 요소를 대체하거나 시간 간격을 나타낼 수 있습니다.
M.-A가 수행한 우수한 작업의 사양을 기반으로 합니다. mx.DateTime 확장 프로그램 의 Lemburg . 그러나 이 유형은 그의 작업과 동일한 알고리즘을 구현 하지 않습니다 . mx.DateTime의 대응물처럼 동작할 것이라고 기대 하지 마십시오 .
relativedelta 인스턴스를 빌드하는 방법에는 두 가지가 있습니다. 첫 번째는 두 개의 날짜/날짜/시간 클래스를 전달하는 것입니다.
relativedelta(datetime1, datetime2)
두 번째는 다음 키워드 인수를 원하는 만큼 전달합니다.
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.
키워드 인수에는 상대 형식과 절대 형식이 있습니다. 복수형은 상대적이고 단수형은 절대적입니다. 아래 순서의 각 인수에 대해 절대 형식이 먼저 적용되고(각 속성을 해당 값으로 설정) 상대 형식이(속성에 값을 추가하여) 적용됩니다.
이 상대 델타가 datetime에 추가될 때 고려되는 속성의 순서는 다음과 같습니다.
년도
월
낮
시간
분
초
마이크로초
마지막으로 위에서 설명한 규칙을 사용하여 평일이 적용됩니다.
예를 들어
>>> 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(월의 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 = 없음 , ** kwargs ) [출처] #
베이스:
object
dateutil.rrule
유연한 날짜 틱 사양을 허용 하는 간단한 래퍼 .- 매개변수 :
- 주파수 {년, 월, 주, 일, 시간, 분, 초}
틱 주파수. 이러한 상수는 에 정의되어
dateutil.rrule
있지만 에서도 액세스할 수matplotlib.dates
있습니다.- tzinfo
datetime.tzinfo
, 선택사항 시간대 정보. 기본값은 없음입니다.
- **kwargs
추가 키워드 인수가 에 전달됩니다
dateutil.rrule
.
- matplotlib.dates. set_epoch ( 에포크 ) [소스] #
datetime 계산을 위한 epoch(날짜의 시작)를 설정합니다.
기본 epoch는
rcParams["dates.epoch"]
(기본적으로 1970-01-01T00:00)입니다.마이크로초 정확도가 필요한 경우 플롯되는 날짜는 대략 70년 이내여야 합니다. Matplotlib는 내부적으로 날짜를 에포크 이후의 날짜로 나타내므로 부동 소수점 동적 범위는 2^52의 인수 내에 있어야 합니다.
set_epoch
날짜가 변환되기 전에(즉, 가져오기 섹션 근처에서) 호출해야 합니다. 그렇지 않으면 RuntimeError가 발생합니다.날짜 정밀도 및 Epochs 도 참조하십시오 .
- 매개변수 :
- 신기원 _
구문 분석 가능한 유효한 UTC 날짜
numpy.datetime64
(시간대 포함 안 함).