![見出し画像](https://assets.st-note.com/production/uploads/images/22434323/rectangle_large_type_2_395ddded0a909981c2b494cee0de93fa.jpeg?width=800)
Photo by
bokuchibi0501
【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でエラーが起きてそう。
この辺の解決方法を探れば良さそう…
あなたによって僕は生かされている。 私もあなたを生かせられますように。