#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. это еще один вариант, да, но у меня много разных объектов на одном и том же участке. неважно. еще раз спасибо.