У меня есть фрейм данных pandas со значениями даты и времени:
Date/Time Event Value
0 2018-11-15 17:17:49 62
1 2018-11-15 17:27:50 63
2 2018-11-15 17:37:50 64
3 2018-11-15 17:42:49 65
4 2018-11-15 18:17:49 64
5 2018-11-15 19:27:48 65
6 2018-11-15 19:37:48 66
7 2018-11-15 19:47:49 67
8 2018-11-15 19:57:49 68
9 2018-11-15 20:12:49 69
print (tmp.dtypes)
Date/Time datetime64[ns]
Event Value int64
График выглядит так:
fig, ax1 = plt.subplots(1,1,figsize=(8,4))
tmp.plot(x='Date/Time',y='Event Value', legend=None, ax=ax1)
![enter image description here](https://i.stack.imgur.com/FFILp.png)
Ось x была отформатирована с соответствующими датами и временем (и может быть дополнительно отформатирована с использованием set_major_formatter
).
Теперь я хочу нарисовать прямоугольник на графике, чтобы выделить определенное время. Для этого мне нужно знать x-позиции.
print([x for x in ax1.get_xticks()])
[737013.7291666666, 737013.75, 737013.7708333334, 737013.7916666666, 737013.8125, 737013.8333333334]
Это действительно значения x, т. Е. Если я использую их как начало координат для прямоугольника, который он строит, как и ожидалось.
rect = patches.Rectangle((737013.75,55),.01,100)
ax1.add_patch(rect)
![enter image description here](https://i.stack.imgur.com/MhzeY.png)
Я не понимаю, откуда эти цифры. Это не эпохальные значения, хотя они немного похожи на них («737013,75» соответствует «1970-01-09 07:43:33», что для меня ничего не значит).
Как я могу получить x-позицию на графике из значения даты / времени в моем фрейме данных?