###前提・実現したいこと
mplfinanceで描画したチャートとmatplotlibで描画したヒストグラムを重ねて描画したい
いろいろ試してみたのですが、matplotlibからfinance分野が分離してしまって同じように扱えないみたいで困っています。
質問用ソースコードは
if Trueでmatplotlibのヒストグラム
if Falseにしたらmplfinanceのローソク足が表示されるようにしています。
この2つを横軸(価格)は合わせた上で重ね合わせたいのですが、そもそも同時に使えるものなのかどうかも分かっていません。元々同じライブラリだったということで動くと思って数日頑張っていましたがどうにも分からず。。。
解決のために助言をいただけると幸いです。
よろしくお願いします。
###該当のソースコード
Python3
1import pandas as pd 2import mplfinance as mpf 3import matplotlib.pyplot as plt 4import time 5 6#実際はAPIで定期的に取得し直す 7ohlc = pd.DataFrame([[pd.Timestamp("20210101"),100,101,98,99,0],[pd.Timestamp("20210102"),99,99,95,96,0],[pd.Timestamp("20210103"),96,98,96,98,0]],columns=["Time","Open","High","Low","Close","Volume"]) 8 9data ={99: 0.0876, 99.2: 0.02, 99.4: 0.001, 99.6: 0.1315, 99.8: 0.21, 100: 0.3988, 100.2: 0.9821, 100.4: 0.4587, 100.6: 0.683, 100.8: 0.5, 101: 0.4952} 10 11#mpfに読み込ませるために時事列配列に変換 12ohlc.set_index("Time", inplace=True) 13 14#当コードでは使わないが、実際は情報をリアルタイム更新する処理のため、似た構造にして再現されるようにしてあります。 15plt.ion() 16fig, axes = mpf.plot(ohlc,returnfig=True,figsize=(11,8),type='candle',title='\n\nBTC-PERP 1Minute Chart') 17ax = axes[0] 18while True: 19 #実際はohlcが更新されるのでwhileTrueに入れています。 20 #ここをTrue、False手動切替でそれぞれの描画ができる。 21 #この2つのパーツを組み合わせて重ねたグラフを表示させたい。 22 if True: 23 # こっちを動かすとヒストグラムを表示 24 plt.clf() 25 plt.barh(list(data), data.values(), color="orange") 26 plt.pause(0.01) 27 else: 28 # こっちを動かすとチャートを表示 29 ax.clear() 30 mpf.plot(ohlc, ax=ax, type="candle") 31 fig.canvas.draw() 32 fig.canvas.flush_events() 33 time.sleep(10)
###完成イメージ
1,現在描画できているヒストグラム
2,現在描画できているチャート
3,完成予想図(イラスト合成したもので実装はできてません)
###追記 ライブラリバージョン
mplfinance:0.12.7a7
matplotlib:3.3.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/01 09:04
2021/03/01 10:30 編集