Как создать линейный график для данных, проиндексированных по дате и времени, без преобразования индекса в другой формат? - PullRequest
0 голосов
/ 13 июня 2019

Я хотел бы сделать график временных рядов. У меня есть pd.DataFrame, который индексируется по дате и времени. Я хотел бы отобразить данные даты и времени напрямую, а не преобразовывать их в упорядоченные категориальные. Я не хочу использовать sns.tsplot(), потому что он предупреждает об устаревании.

import pandas as pd
import seaborn as sns

numberofmice = {
    "time": ["2012-01-01 12:00:00", "2012-01-02 12:00:00", "2012-01-03 12:00:00", "2012-01-04 12:00:00"],
    'mice': [8, 5, 3, 12]
}

df = pd.DataFrame(numberofmice)
df["time"] = pd.to_datetime(df["time"])
df = df.set_index("time")

sns.lineplot(data = df, x = "time", y = "mice")

Но это дало ValueError: Could not interpret input 'time'.

1 Ответ

1 голос
/ 13 июня 2019

Создать DatetimeIndex не обязательно:

df = pd.DataFrame(numberofmice)
df["time"] = pd.to_datetime(df["time"])

sns.lineplot(data = df, x = "time", y = "mice")

Ваш код работает как остроконечный @ anky_91 - вместо него time используйте df.index:

df = pd.DataFrame(numberofmice)
df["time"] = pd.to_datetime(df["time"])
df = df.set_index("time")

sns.lineplot(data = df, x = df.index, y = "mice")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...