如何在不将索引转换为其他格式的情况下为日期时间索引的数据创建线图?

时间:2019-06-13 05:05:08

标签: python pandas seaborn

我想制作一个时序图。我有一个按日期时间索引的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 个答案:

答案 0 :(得分:1)

无需创建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")