見出し画像

【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でエラーが起きてそう。
この辺の解決方法を探れば良さそう…

あなたによって僕は生かされている。 私もあなたを生かせられますように。