#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
.