我正在使用gluonts,并试图修改其中一个例子来绘制我的数据.我对pandas并不太精通(我现在主要使用polars),我对下面的代码有一个问题—这基本上是从gluonts代码剪切/粘贴的(特别是gluonts.dataset.util.to_pandas).

plt.axvspan个错误与IncompatibleFrequency: Input has different freq=15T from PeriodIndex(freq=T),我不认为是这样的,因为两个输入到axvspan都是Period(..., '15T').

任何解决这个问题的 idea ,我怀疑pandas或matplotlib可能在创建gluonts示例之后已经改变了.不同之处在于,Glounts的样本使用的是每日数据,而不是高频数据.

import pandas as pd
import numpy as np

timestamps = pd.period_range(start=pd.Period('2024-01-01 00:00', freq='15T'), periods=7*96, freq='15T')
data = np.random.rand(len(timestamps))
series = pd.Series(
        data,
        index=timestamps,
    )
series.plot()
plt.axvspan(timestamps[0], timestamps[0] + 96, facecolor="red", alpha=0.2)

编辑:在发布这篇文章后,我发现以下方法有效:

plt.axvspan(timestamps[0].to_timestamp(), (timestamps[0] + 96).to_timestamp(), facecolor="red", alpha=0.2)

我不知道这是不是最好的方法,但这是一种方法...

推荐答案

这在我看来更优雅:

plt.axvspan(timestamps[0].start_time, 
            timestamps[0].start_time + pd.Timedelta(minutes=15*96), 
            facecolor="red", alpha=0.2)

timestamps[0]已经有一个start_time属性可以访问,因此不需要使用.to_timestamp().此外,如果你不指定它是一个时间差,那么单独添加96并不意味着什么.我加上了15的乘法,因为每一步都是15分钟.

Python相关问答推荐

在Python和matlab中显示不同 colored颜色 的图像

在函数内部使用eval(),将函数的输入作为字符串的一部分

如何使用Jinja语法在HTML中重定向期间传递变量?

连接两个具有不同标题的收件箱

为什么我的Python代码在if-else声明中的行之前执行if-else声明中的行?

抓取rotowire MLB球员新闻并使用Python形成表格

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

如何让Flask 中的请求标签发挥作用

如何获得每个组的时间戳差异?

如何从数据库上传数据到html?

移动条情节旁边的半小提琴情节在海运

计算分布的标准差

ConversationalRetrivalChain引发键错误

python sklearn ValueError:使用序列设置数组元素

Polars map_使用多处理对UDF进行批处理

将链中的矩阵乘法应用于多组值

使用polars. pivot()旋转一个框架(类似于R中的pivot_longer)

如何在Airflow执行日期中保留日期并将时间转换为00:00

无法在盐流道中获得柱子

我如何处理超类和子类的情况