2

数か月分の取引履歴の先物契約のティック価格データをリストする時系列があります。時系列の最新 4 週間の各週のティック データの取引履歴を示す 1 つのプロット (折れ線グラフ) が必要です (系列は継続的に更新されています)。

X 軸は月曜から金曜までの日を示し、ティック データの詳細を示す 4 本の線が同時にチャートに表示されます。毎日の最後の取引をプロットするコードを使用してこれを行うことができましたが、各ラインに対して 1 日あたり 1 つのデータ ポイントだけでなく、ティック データのプロットが必要です。

これは、私が目盛りデータで表現しようとしているものの Excel チャート (!) です。より多くのデータ ポイントが存在するため、線のみがより不安定になります。
基本的に、過去 4 週間の取引ティック データを示す 1 つのチャートの 4 つの線:

毎週のプロット

私が試したコードはありませんが (動作中です)、明日アップロードできます。

4

1 に答える 1

1

偽のデータを提供するには:

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'])

まず、週番号を(列として)入力します。

In [13]: df['week'] = df.index.week

次に、週の初めからの時間を計算します (もっと洗練された方法があるかもしれません):

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

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

これで、次を使用できますpivot_table

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)

これがあなたがプロットしたいもののように思えます(前の質問で見つかった手法を使用して):

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

注: この特定のプロットはかなり乱雑です。多くのデータポイントがあるため、このデータの一部を事前に集計することは理にかなっている場合があります。

于 2013-08-14T22:45:30.337 に答える