从一年时间序列绘制每周刻度数据

2024-09-28 03:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个时间序列,它列出了一个期货合约几个月的交易历史的最低价数据。我想要一个曲线图(折线图),显示时间序列中最近4周内每周的勾数数据的交易历史(该系列正在不断更新)

X轴将显示星期一到星期五,图表上任何时候都会有4条单独的线来详细说明刻度数据。我已经设法做到这一点,使用一些代码,绘图的最后一笔交易每天,但我需要滴答数据绘图,而不是每天只有一个数据点为每一行。在

这是Excel图表(!)在我试图用记号数据表示的内容中,只有行会更不稳定,因为会有更多的数据点。
基本上,一张图表上有4条线显示了过去四周的交易记录数据:

weekly plot

我没有我试过的代码(在工作中),但明天可以上传。


Tags: 数据代码绘图图表时间序列交易历史
1条回答
网友
1楼 · 发布于 2024-09-28 03:20:25

给你一些假数据:

In [11]: rng = pd.date_range('2013', freq='H', periods=1000)

In [12]: df = pd.DataFrame(np.random.randn(len(rng)), index=rng, columns=['data'])

首先,填充周数(作为列):

^{pr2}$

接下来,计算从本周开始算起的时间(可能有一种更优雅的方法):

In [14]: df['week_beginning'] = df.index.to_period('W').to_timestamp()

In [15]: df['week_time'] = df.index.to_series() - df['week_beginning']

现在可以使用^{}

In [16]: df.pivot_table(values='data', rows='week_time', cols='week')
Out[16]: 
<class 'pandas.core.frame.DataFrame'>
Int64Index: 168 entries, 0 to 601200000000000
Data columns (total 7 columns):
33    120  non-null values
34    168  non-null values
35    168  non-null values
36    168  non-null values
37    168  non-null values
38    168  non-null values
39    40  non-null values
dtypes: float64(7)

听起来这就是您想要绘制的东西(使用your previous question中的技术):

In [17]: df.pivot_table('data', 'week_time', 'week').rename(columns=lambda x: 'Week ' + str(x)).plot()

注意:这个特定的图相当混乱,因为有很多数据点,所以事先聚集一些数据可能是有意义的。在

相关问题 更多 >

    热门问题