ValueError: минимальный лимит просмотра при добавлении осевой линии к графику таймсерии - PullRequest
0 голосов
/ 09 июля 2020

У меня есть данные таймсерий, которые я могу построить на морской диаграмме. Воспроизводимый пример ниже

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, но не знаю, как преобразовать, или если это основная проблема

Любая помощь или рекомендации были бы очень признательны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...