サンプルコード
以下のサンプルでは移動平均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をインストールする
コメント失礼します。
返信削除以前コチラの記事を参考に凡例を表示させたときはうまく行ったのですが(2021年10月ごろ)
最近PCを新調して同じプログラムで凡例を表示させましたがうまくいきません。
具体的には、凡例を表示させると、ma2のところの黒の細線、ma4のところに黒の太線、ma6のところに水色の線が表示されます。
http://iup.2ch-library.com/i/i021650877815874711287.png
解決策などご存知でしたら教えて下さい。
書き込みありがとうございます。たしかに凡例の色がおかしくなっていましたので、ソースコードを変更してみました(また、スタイルが正しく適用されていなかった部分も合わせて修正しました)。。。ちょっと冗長になりますが、凡例の色を設定できます。
削除迅速なご回答ありがとうございました。
削除私もこちらの記事参考に再度挑戦しています。
いつも参考にさせていただいております。
削除凡例のボックスの背景色や文字色を変更することは可能でしょうか?
ダークモード用に背景色を黒にしたのですが、凡例が読めなくなってしまいました。
このコメントは投稿者によって削除されました。
返信削除