построение графиков миллисекунд в python matplotlib.dates

#python #matplotlib

#python #matplotlib

Вопрос:

У меня есть данные с метками времени, отформатированные с использованием datetime.datetime.strptime, которые включают миллисекунды. Данные могут занимать от нескольких минут до нескольких часов. Когда я строю график с помощью pyplot и увеличиваю масштаб, кажется, что минимальная отметка составляет 1 секунду. Похоже, что RRuleLocator от TickHelper matplotlib имеет только SecondLocator . Есть ли способ включить разрешение в миллисекундах при увеличении?

 receivedTime = datetime.datetime.strptime(str(data[1]), "%H:%M:%S.%f")

fig=plt.figure()
ax=fig.add_axes([0.1,0.1,.8,.8])
fig.autofmt_xdate()

ax.plot(times, prices, color='blue', lw=1, drawstyle='steps-post', label = prices)
plt.show()
  

Ответ №1:

Matplotlib использует Matlab как числа (секунды с 1970 года) для дат. Если у вас есть миллисекунды, вы должны преобразовать даты в «число»:

 import matplotlib.dates as mdates
ntimes = mdates.num2epoch(times / 1000.0)
  

и постройте график ntimes вместо times .