У меня есть куча timedelta
объектов.
Я хочу визуализировать их, показывая их в виде полос на общей линейной оси времени (например, диаграммы Ганта).
Конечным продуктом должен быть SVG с определенной общей шириной W (то есть ось времени шириной W и прямоугольники над ней, визуализирующие временные дельты).
Решение должно быть максимально точным.
Как лучше всего это сделать?
До сих пор лучший способ, который я придумал, это
каким-то образом извлечь абсолютное числовое значение из всех
timedelta
объектов (может быть, что-то вроде времени эпохи Unix)используйте первую и последнюю метку времени для определения диапазона времени
создайте функцию отображения из абсолюта, интерполируя значения (что-то вроде это)
сопоставить абсолютные значения с определенной шириной SVG
создайте объекты SVG, используя
svgwrite
После небольшого поиска в Google шаги 1 и 2 кажутся проблематичными - я даже не уверен, что timedelta
имеют абсолютное числовое значение.
timedelta.total_seconds
. Остальная часть вопроса слишком широка. - person chepner   schedule 08.10.20191000000*(t.days*86400 + t.seconds) + t.microseconds
самостоятельно, чтобы получить общую продолжительность в микросекундах. (В документации также упоминается делениеtd / timedelta(microseconds=1)
на небольшие интервалы.) - person chepner   schedule 08.10.2019