<問題点>
下記のコードを実行すると、mplfinanceの図とmatplotlibの図を重ねることはできるのですが、mpf.plot(df, type='candle', ax=ax2, style='yahoo')このコードの引数にvolume=Trueと記述すると「volume
must be of type matplotlib.axis.Axes
」というエラーが表示されます。
<実現したいこと>
下の画像のようにmplfinanceで作成したチャートと出来高の上にmatplotlibで作成したチャートの移動平均線と出来高の移動平均線を描画したいです。
(この図の移動平均線はイラスト合成したものです)
Python
1import pandas as pd 2import matplotlib.pyplot as plt 3import mplfinance as mpf 4import yahoo_fin.stock_info as si 5# 株価を260日分取得し、60日分の最初の日にも200日移動平均線を描画 6df = si.get_data('AAPL').tail(260) 7# 移動平均線の定義付け 8df['SMA50'] = df['adjclose'].rolling(50).mean().round(2) 9df['SMA200'] = df['adjclose'].rolling(200).mean().round(2) 10df['volumeSMA60'] = df['volume'].rolling(60).mean().round(-3) 11# dfを60日分に変更 12df=df.tail(60) 13# 作図 14fig = mpf.figure(figsize=(11,8)) 15ax1 = fig.subplots() 16ax1.plot(df.index, df['SMA50'], 'g', label='SMA50', alpha=0.5) 17ax1.plot(df.index, df['SMA200'], 'r', label='SMA200', alpha=0.5) 18ax2 = ax1.twiny() 19mpf.plot(df, type='candle', ax=ax2, style='yahoo') 20mpf.show()

回答1件
あなたの回答
tips
プレビュー