【发布时间】:2015-07-24 04:21:48
【问题描述】:
我正在尝试使用 Seaborn 绘制统计时间序列,但我似乎无法弄清楚。我已经尝试使用lmplot 和tsplot 方法,但显然缺少一些关键。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as pylab
p = pd.DataFrame({
"date": pd.date_range('1/1/2015', periods = 12),
"values":range(1,13)
})
# Regular Matplotlib (via pandas) works
p.plot(x = "date", style = 'o--')
# Can't get lmplot to work
sns.lmplot(x = "date", y = "values", data = p)
# Can't get tsplot to work either
sns.tsplot(time = "date", value = "values", data = p)
【问题讨论】:
-
一般来说,我认为 Seaborn 的任何情节都不能很好地处理时间戳。最好坚持直接在 matplotlib 中或通过 pandas 进行绘图,就像您在此处所做的那样。
-
此外,seaborn 中的
tsplot函数并非旨在制作时间序列。它是为每个时间步有多个值的情况而设计的,它会计算平均值和置信区间。查看示例stanford.edu/~mwaskom/software/seaborn/tutorial/… -
感谢您的回答。希望 Seaborn 包能获得更多功能,但暂时我不会再扯头发了。
-
pandas DataFrame 绘图方法可以很好地处理这种情况,无论如何,seaborn 无法为这个绘图做任何额外的事情。
-
有。我想要一个回归和置信区间。相比之下,ggplot 可以很容易地处理这种情况,但目前在 Pandas 中似乎不会那么简单
标签: python pandas matplotlib seaborn