前提・実現したいこと
plotlyを使ってロウソク足チャートを表示しているプログラムをロウソク足を用いず(Closeに入っている)終値だけを使用してチャートを描くプログラムに変更したいです.以下のプログラムの
data = [ Candlestick(x=train.index, open=train['Open'], high=train['High'], low=train['Low'], close=train['Close'], name='train'), Candlestick(x=test.index, open=test['Open'], high=test['High'], low=test['Low'], close=test['Close'], name='test') ]
の部分を書き換えればできると思ったのですが,なかなかうまくいかず質問しました.
データ(goog.us.data)には以下のような値が入っています.
Date Open High Low Close Volume OpenInt
0 2014-03-27 568.00 568.00 552.92 558.46 13052 0
1 2014-03-28 561.20 566.43 558.67 559.99 41003 0
2 2014-03-31 566.89 567.00 556.93 556.97 10772 0
3 2014-04-01 558.71 568.45 558.71 567.16 7932 0
4 2014-04-02 599.99 604.83 562.19 567.00 146697 0
.. ... ... ... ... ... ... ...
911 2017-11-06 1028.99 1034.87 1025.00 1025.90 1124765 0
912 2017-11-07 1027.27 1033.96 1027.12 1033.33 1112146 0
913 2017-11-08 1030.52 1043.52 1028.45 1039.85 1088395 0
914 2017-11-09 1033.99 1033.99 1019.67 1031.05 1244886 0
915 2017-11-10 1026.46 1030.76 1025.28 1028.07 720674 0
該当のソースコード
python
1 2import pandas as pd 3from plotly.graph_objs import * 4from plotly.offline import init_notebook_mode, iplot, iplot_mpl 5init_notebook_mode() 6 7data = pd.read_csv('goog.us.txt') 8print(data) 9data['Date'] = pd.to_datetime(data['Date']) 10data = data.set_index('Date') 11print(data.index.min(), data.index.max()) 12data.head() 13date_split = '2016-01-01' 14train = data[:date_split] 15test = data[date_split:] 16len(train), len(test) 17 18 19def plot_train_test(train, test, date_split): 20 data = [ 21 Candlestick(x=train.index, open=train['Open'], high=train['High'], low=train['Low'], close=train['Close'], name='train'), 22 Candlestick(x=test.index, open=test['Open'], high=test['High'], low=test['Low'], close=test['Close'], name='test') 23 ] 24 layout = { 25 'shapes': [ 26 {'x0': date_split, 'x1': date_split, 'y0': 0, 'y1': 1, 'xref': 'x', 'yref': 'paper', 'line': {'color': 'rgb(0,0,0)', 'width': 1}} 27 ], 28 'annotations': [ 29 {'x': date_split, 'y': 1.0, 'xref': 'x', 'yref': 'paper', 'showarrow': False, 'xanchor': 'left', 'text': ' test data'}, 30 {'x': date_split, 'y': 1.0, 'xref': 'x', 'yref': 'paper', 'showarrow': False, 'xanchor': 'right', 'text': 'train data '} 31 ] 32 } 33 figure = Figure(data=data, layout=layout) 34 iplot(figure) 35 figure.write_html("pic.html") 36plot_train_test(train, test, date_split) 37
試したこと
data = [
Candlestick(x=train.index, open=train['Open'], high=train['High'], low=train['Low'], close=train['Close'], name='train'),
Candlestick(x=test.index, open=test['Open'], high=test['High'], low=test['Low'], close=test['Close'], name='test')
]
の部分を
data = [
x=train.index,y=train['Close'], name='train'),
x=test.index,y=test['Close'], name='test')
]
にして試しましたができませんでした.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/10 04:10
2021/11/10 04:27