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