【42日目】問題の切り分け【Jupyternotebookすごい】
今日の画像のテーマは「切り分け」です。
昨日の失敗はどこに原因があるか調べるのにJupyternotebookを使ってみたよ。
0.Jupyternotebookでの環境用意
!pip install mplfinance
1.必要なモジュールのインストール
import matplotlib.pyplot as plt
import mplfinance as mpf
import io
import pandas as pd
import numpy as np
2.データのプロット
まずはmpf.plotが正常に動いているのか確認するよ。
def candle_graph(df):
mpf.plot(df,type='candle')
# svgへの変換
def plt2svg():
buf = io.BytesIO()
plt.savefig(buf, format='svg', bbox_inches='tight')
s = buf.getvalue()
buf.close()
return s
def get_svg(df):
candle_graph(df) # create the plot
svg = plt2svg() # convert plot to SVG
plt.cla() # clean up plt so it can be re-used
a = plt.imshow(svg)
return abs
choice_timeframe = "1T"
timestamp_tx0= pd.Timestamp("2015-09-25 12:00:00")
timestamp_tx1= pd.Timestamp("2015-09-25 12:01:00")
timestamp_tx2= pd.Timestamp("2015-09-25 12:02:00")
timestamp_tx3= pd.Timestamp("2015-09-25 12:03:00")
timestamp= [timestamp_tx0,timestamp_tx1,timestamp_tx2,timestamp_tx3]
open_rate = [100,101,112,134]
high_rate = [111,121,134,144]
low_rate = [89,91,102,122]
close_rate = [101,112,134,135]
data_jisyo = {'Open':open_rate,"High":high_rate,"Low":low_rate,"Close":close_rate}
agg_jisyo = {'Open': 'first','High': 'max','Low': 'min','Close': 'last'}
df = pd.DataFrame(data_jisyo,index = timestamp).resample(choice_timeframe).agg(agg_jisyo)
print(df)
candle_graph(df)
おぉぉ、ちゃんとローソク足ができてる。
次はget_svg(df)で動かしてみる。
def candle_graph(df):
mpf.plot(df,type='candle')
# svgへの変換
def plt2svg():
buf = io.BytesIO()
plt.savefig(buf, format='svg', bbox_inches='tight')
s = buf.getvalue()
buf.close()
return s
def get_svg(df):
candle_graph(df) # create the plot
svg = plt2svg() # convert plot to SVG
plt.cla() # clean up plt so it can be re-used
a = plt.imshow(svg)
return abs
choice_timeframe = "1T"
timestamp_tx0= pd.Timestamp("2015-09-25 12:00:00")
timestamp_tx1= pd.Timestamp("2015-09-25 12:01:00")
timestamp_tx2= pd.Timestamp("2015-09-25 12:02:00")
timestamp_tx3= pd.Timestamp("2015-09-25 12:03:00")
timestamp= [timestamp_tx0,timestamp_tx1,timestamp_tx2,timestamp_tx3]
open_rate = [100,101,112,134]
high_rate = [111,121,134,144]
low_rate = [89,91,102,122]
close_rate = [101,112,134,135]
data_jisyo = {'Open':open_rate,"High":high_rate,"Low":low_rate,"Close":close_rate}
agg_jisyo = {'Open': 'first','High': 'max','Low': 'min','Close': 'last'}
df = pd.DataFrame(data_jisyo,index = timestamp).resample(choice_timeframe).agg(agg_jisyo)
print(df)
candle_graph(df)
エラー。内容は以下の通り。
TypeError: Image data of dtype |S614 cannot be converted to float
どうやらplt2svgでエラーが起きてそう。
この辺の解決方法を探れば良さそう…
あなたによって僕は生かされている。 私もあなたを生かせられますように。