У меня есть данные таймсерий, которые я могу построить на морской диаграмме. Воспроизводимый пример ниже
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = {
'visit_date': [
'2020-07-09 12:53:09','2020-07-09 12:53:06',
'2020-07-09 12:51:09','2020-07-09 12:51:08',
'2020-07-09 12:51:07','2020-07-09 12:51:02',
'2020-07-09 12:50:41','2020-07-09 12:50:36',
'2020-07-09 12:50:35','2020-07-09 12:50:00',
'2020-07-09 12:49:58','2020-07-09 12:49:57',
'2020-07-09 12:46:06','2020-07-09 12:46:03',
'2020-07-09 12:46:02','2020-07-09 12:45:59',
'2020-07-09 12:45:40','2020-07-09 12:45:39',
'2020-07-09 12:45:38','2020-07-09 12:39:03',
]
}
df = pd.DataFrame(data)
df['visit_date'] = pd.to_datetime(df['visit_date'])
fig, ax = plt.subplots()
sns.distplot(
df['visit_date'],
kde = False,
ax = ax,
)
#PROBLEM LINE
#ax.axvline(pd.to_datetime(df.iloc[0]['visit_date']))
xticks = ax.get_xticks()
ax.set_xticklabels([pd.to_datetime(tm).strftime('%H:%M') for tm in xticks])
plt.show()
plt.close()
Это работает и дает следующий график: введите описание изображения здесь
Но когда я пытаюсь добавить ось к графику с помощью строки ax.axvline(pd.to_datetime(df.iloc[0]['visit_date']))
, я получаю следующую ошибку:
ValueError: минимальный предел просмотра -7.971495944922523e + 16 меньше 1 и является недопустимым значением даты Matplotlib. Это часто происходит, если вы передаете значение, отличное от datetime, на ось, которая имеет единицы datetime.
Меня путают со всеми разными классами datetime.
Я вижу, что единственный значение, которое я передаю в axvline, - это метка времени, а столбец visit_date - datetime64, но не знаю, как преобразовать, или если это основная проблема
Любая помощь или рекомендации были бы очень признательны