mplfinanceのチャートに凡例を追加するには、plotメソッドでreturnfig引数を使用します。
サンプルコード
以下のサンプルでは移動平均2, 4, 6に対応する凡例ma2, ma4, ma6を表示しています。
from datetime import datetime
import pandas as pd
import mplfinance as mpf
fx_data = [
[datetime(2020, 7, 8), 107.475, 107.711, 107.202, 107.253],
[datetime(2020, 7, 9), 107.231, 107.398, 107.097, 107.201],
[datetime(2020, 7, 10), 107.169, 107.264, 106.639, 106.93],
[datetime(2020, 7, 13), 106.861, 107.319, 106.787, 107.283],
[datetime(2020, 7, 14), 107.227, 107.427, 107.119, 107.236],
[datetime(2020, 7, 15), 107.205, 107.309, 106.666, 106.939],
[datetime(2020, 7, 16), 106.895, 107.401, 106.833, 107.272],
[datetime(2020, 7, 17), 107.250, 107.360, 106.938, 106.986],
[datetime(2020, 7, 20), 107.011, 107.537, 106.970, 107.279],
[datetime(2020, 7, 21), 107.193, 107.367, 106.681, 106.803],
[datetime(2020, 7, 22), 106.789, 107.288, 106.705, 107.153],
[datetime(2020, 7, 23), 107.124, 107.231, 106.711, 106.865],
[datetime(2020, 7, 24), 106.826, 106.872, 105.681, 106.052]
]
df = pd.DataFrame(fx_data, columns=['date', 'open', 'high', 'low', 'close'])
df = df.set_index("date")
cs = mpf.make_mpf_style(gridcolor="lightgray", mavcolors=['red', 'green', '#405173'])
fig, axes = mpf.plot(df,type='candle', datetime_format='%Y/%m/%d', mav=(2,4,6), returnfig=True)
legend=["ma2", "ma4", "ma6"]
axes[0].legend(legend)
fig.show()
・実行結果
○2021/12/08追記: モジュールの仕様が変わったのか、凡例の色が正しく表示されなくなったのでソースコードを修正しました。
from datetime import datetime
import pandas as pd
import mplfinance as mpf
import matplotlib.patches as mpatches
fx_data = [
[datetime(2020, 7, 8), 107.475, 107.711, 107.202, 107.253],
[datetime(2020, 7, 9), 107.231, 107.398, 107.097, 107.201],
[datetime(2020, 7, 10), 107.169, 107.264, 106.639, 106.93],
[datetime(2020, 7, 13), 106.861, 107.319, 106.787, 107.283],
[datetime(2020, 7, 14), 107.227, 107.427, 107.119, 107.236],
[datetime(2020, 7, 15), 107.205, 107.309, 106.666, 106.939],
[datetime(2020, 7, 16), 106.895, 107.401, 106.833, 107.272],
[datetime(2020, 7, 17), 107.250, 107.360, 106.938, 106.986],
[datetime(2020, 7, 20), 107.011, 107.537, 106.970, 107.279],
[datetime(2020, 7, 21), 107.193, 107.367, 106.681, 106.803],
[datetime(2020, 7, 22), 106.789, 107.288, 106.705, 107.153],
[datetime(2020, 7, 23), 107.124, 107.231, 106.711, 106.865],
[datetime(2020, 7, 24), 106.826, 106.872, 105.681, 106.052]
]
df = pd.DataFrame(fx_data, columns=['date', 'open', 'high', 'low', 'close'])
df = df.set_index("date")
cs = mpf.make_mpf_style(gridcolor="lightgray", mavcolors=['red', 'green', '#405173'])
fig, axes = mpf.plot(df,type='candle', datetime_format='%Y/%m/%d', mav=(2,4,6), style=cs, returnfig=True)
legend=["ma2", "ma4", "ma6"]
# 移動平均凡例の色を指定
ma2_patch = mpatches.Patch(color='red', label='ma2')
ma4_patch = mpatches.Patch(color='green', label='ma4')
ma6_patch = mpatches.Patch(color='#405173', label='ma6')
axes[0].legend(handles=[ma2_patch, ma4_patch, ma6_patch])
fig.show()
○実行結果
関連情報
・mplfinanceのインストール方法は以下の記事を参照してください。
JupyterLabにmplfinance、pandas、matplotlibをインストールして、ロウソク足チャートを表示する
・mplfinanceのgithubリポジトリ
https://github.com/matplotlib/mplfinance
・
Ubuntu 20.04にJupyter Labをインストールする(pipenv版)
・
Raspberry Pi(Raspbian Buster)にJupyter Labをインストールする