【问题标题】:Is it possible to plot a statistical time series with dates in Seaborn是否可以在 Seaborn 中绘制带有日期的统计时间序列
【发布时间】:2015-07-24 04:21:48
【问题描述】:

我正在尝试使用 Seaborn 绘制统计时间序列,但我似乎无法弄清楚。我已经尝试使用lmplottsplot 方法,但显然缺少一些关键。

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


【解决方案1】:

抱歉,由于我的评价不够高,我无法将此添加为评论。

我最近一直在与时间序列作斗争,以下 SO 帖子与您的几乎完全相同,关于置信区间的问题相同:

Plotting time-series data with seaborn

【讨论】:

    猜你喜欢
    • 2016-11-28
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多