From 5429f1cc417957b0ff36a75df6fa7ffc8e88a857 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Tue, 29 Aug 2017 18:28:35 +0100 Subject: [PATCH] Allow timedelta to be converted to an ordinalf --- lib/matplotlib/dates.py | 11 +++++++++++ lib/matplotlib/tests/test_dates.py | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/lib/matplotlib/dates.py b/lib/matplotlib/dates.py index a229e09f5e63..5673a24c72ab 100644 --- a/lib/matplotlib/dates.py +++ b/lib/matplotlib/dates.py @@ -271,6 +271,17 @@ def _dt64_to_ordinalf(d): return dt +def _tdelta_to_ordinalf(tdelta): + """ + Convert :mod:`timedelta` to total days. Return value is a :func:`float` + """ + return tdelta.total_seconds() / SEC_PER_DAY + + +# a version of _tdelta_to_ordinalf that can operate on numpy arrays +_tdelta_to_ordinalf_np_vectorized = np.vectorize(_tdelta_to_ordinalf) + + def _from_ordinalf(x, tz=None): """ Convert Gregorian float of the date, preserving hours, minutes, diff --git a/lib/matplotlib/tests/test_dates.py b/lib/matplotlib/tests/test_dates.py index db153be5ff97..9d14474a2a0e 100644 --- a/lib/matplotlib/tests/test_dates.py +++ b/lib/matplotlib/tests/test_dates.py @@ -641,3 +641,10 @@ def test_tz_utc(): def test_num2timedelta(x, tdelta): dt = mdates.num2timedelta(x) assert dt == tdelta + + +def test_timedelta_ordinalf(): + # Check that timedeltas can be converted to ordinalfs + dt = datetime.timedelta(seconds=60) + ordinalf = mdates._tdelta_to_ordinalf(dt) + assert ordinalf == 1 / (24 * 60) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy