dateformatter matplotlib обрабатывает секунды как дни

#python #matplotlib #plot #python-datetime

Вопрос:

При использовании DateFormatter я ожидаю , что он преобразует int в даты в виде временных меток unix. Значение:

  • 0-1970/01/01 00:00:00
  • 1 — это 1970/01/01 00:00:01

вместо этого я понимаю, что 1 ==> 1970/01/02 00:00:00

 from matplotlib import pyplot as plt
import matplotlib.dates as md

fig, ax = plt.subplots()
ax.scatter([0, 1], [1, 1])
xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S')
ax.xaxis.set_major_formatter(xfmt)
fig.autofmt_xdate()
 

вывод кода

Комментарии:

1. Строка документа для DateFormatter говорит: «Отформатируйте галочку (в днях с начала эпохи) с strftime помощью строки формата». Поэтому ваше предположение, что она должна учитываться в секундах, кажется неправильным.

2. черт возьми, не заметил…. спасибо! кроме того, есть ли более приятное решение, чем разделить все это на 24*3600?

3. Я не знаю лучшего решения (но это не значит, что его нет!)

4. возможно, сначала преобразуйте свои значения x в datetime объект?

5. это еще один вариант, да, но у меня много разных объектов на одном и том же участке. неважно. еще раз спасибо.