この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
今回は、Pythonの金融チャート専用ライブラリである「mplfinance」を使って、株価データを簡単に可視化する方法を初心者向けに解説します。
mplfinanceを使うと、ローソク足チャートを含む様々な金融チャートを素早く作成できます。
株式投資に興味がある方、金融データを視覚的に理解したい方におすすめです。
mplfinanceとは
mplfinanceは、可視化ライブラリのMatplotlibをベースにした金融データの可視化専用ライブラリです。
シンプルなコマンドで、ローソク足チャートや出来高、移動平均線など、株価データを視覚的に把握できるツールを簡単に作成できます。
初心者でも手軽に使用できるため、金融データの分析を始めたい人におすすめです。
mplfinanceをインストール
コマンドプロンプトからpipでインストールできます。
pip install mplfinance
PyCharmを使用されている場合は、画面下部のPythonパッケージからでもインストールできます。
mplfinanceでローソク足チャートを描画
まずは、Pythonのライブラリのyfinanceで株価データを取得します。
yfinanceの使い方については、下記の記事で解説しているのでご覧ください。
【Python】yfinanceの使い方を徹底解説!日本株や米国株の株価データや財務情報、為替データを取得する方法今回は、日経平均株価の価格データを使用します。データを取得するコードは以下の通りです。
import yfinance as yf
# 日経平均株価のデータを取得
data = yf.download('^N225', start='2024-01-01', end='2024-09-01')
# データの最初の5行を表示
print(data.head())
yf.download()
を使って、指定した期間の株価データを取得します。このデータには日付ごとの「Open(始値)」、「High(高値)」、「Low(安値)」、「Close(終値)」、「Volume(出来高)」などが含まれています。
mplfinanceを使って最も基本的なローソク足チャートを描画するには、以下のコードを実行します。
import yfinance as yf
import mplfinance as mpf
# 日経平均株価のデータを取得
data = yf.download('^N225', start='2024-01-01', end='2024-09-01')
# ローソク足チャートの描画
mpf.plot(data, type='candle', volume=True, style='charles', title='NIKKEI (2024)', ylabel='Price', ylabel_lower='Volume')
mplfinanceを利用するとplotメソッドを実行するだけでローソク足チャートを描画できます。
2024年9月までのローソク足チャートが表示できました。8月に大きく下落していますね。
mplfinanceの設定を解説
第1引数は、OHLCVの株価データをデータフレームでわたします。
その他のオプションについては、プロパティと値の形式で指定します。
typeプロパティ
typeプロパティはグラフの種類を指定するプロパティです。指定できる値には、次の表のものがあります。
値 | チャートの種類 |
---|---|
candle | ローソク足チャート |
line | 終値の折れ線グラフ |
renko | 練行足チャート |
pnf | ポイント・アンド・フィギュア(P&F) |
練行足チャートとは、一定の値動きがあった場合にのみ新しい足を形成していく、日本で開発された非時系列チャートです。価格の方向性がわかりやすいという特徴があります。
ポイントアンドフィギュア(P&F)は、横軸の時間の概念を除いて、縦軸の価格の変動のみ重視した非時系列チャートです。価格が下落した場合に「◯」、上昇した場合に「✕」がつくため、相場の流れを一目で認識できます。
volumeプロパティ
volume=True
で出来高を表示します。
volume=False
で出来高を表示しません。
styleプロパティ
styleプロパティでグラフの外観を変更することができます。以下の値を指定できます。
‘binance’, ‘binancedark’, ‘blueskies’, ‘brasil’, ‘charles’, ‘checkers’, ‘classic’, ‘default’, ‘ibd’, ‘kenan’, ‘mike’, ‘nightclouds’, ‘sas’, ‘starsandstripes’, ‘tradingview’, ‘yahoo’
figatioプロパティ
figatioプロパティでグラフのアスペクト比を指定することができます。例えば、figatio=(2, 1)とすることで、アスペクト比を2:1にできます。
figscaleプロパティ
figscaleプロパティでは、図の大きさの倍率を指定できます。デフォルトは1となります。
移動平均線の追加
次に、株価分析でよく使われる「移動平均線」をチャートに追加してみましょう。移動平均線は、価格の長期的なトレンドを把握するために役立ちます。
import yfinance as yf
import mplfinance as mpf
# 日経平均株価のデータを取得
data = yf.download('^N225', start='2024-01-01', end='2024-09-01')
# ローソク足チャートの描画
mpf.plot(data, type='candle', volume=True, style='charles', title='NIKKEI (2024)', ylabel='Price',
ylabel_lower='Volume', mav=(20, 50)) # 20日と50日の移動平均線を追加
mav=(20, 50)
を指定することで、20日と50日の移動平均線が描画されます。
このように、mplfinanceを使うことで移動平均線を簡単に追加し、トレンド分析ができるグラフを作成できます。
色やスタイルを変更する方法
mplfinanceでは、チャートの色やスタイルを自由にカスタマイズできます。例えば、以下のコードではローソク足の色などを変更しています。
import yfinance as yf
import mplfinance as mpf
# 日経平均株価のデータを取得
data = yf.download('^N225', start='2024-01-01', end='2024-09-01')
mc = mpf.make_marketcolors(up='g', # 陽線の色
down='r', # 陰線の色
edge='lime', # ローソク足の縁の色
wick={'up': 'blue', # 陽線のヒゲの色
'down': 'orange'}, # 陽線のヒゲの色
volume='gray', # 出来高の色
)
custom_style = mpf.make_mpf_style(marketcolors=mc,
mavcolors=['b', 'c'], # 移動平均線の色をlistで表示
facecolor='white', # 背景の色
edgecolor='black', # 外枠の色
figcolor='white', # 外側の色
gridcolor='black', # グリッドの色
gridstyle='solid', # グリッドの種類 'solid':実線, 'dashed':破線, "dashdot":破線と点線, 'dotted':点線, 'None':なし
)
# カスタマイズされたローソク足チャートの描画
mpf.plot(data, type='candle', volume=True, style=custom_style, title='NIKKEI (2024)', ylabel='Price',
ylabel_lower='Volume', mav=(20, 50), figratio=(2, 1), figscale=1.2)
好みに合わせて、視覚的にわかりやすいチャートが作成できます。
ボリンジャーバンドの描画
mplfinanceを使ってボリンジャーバンドを表示するコードです。
import yfinance as yf
import mplfinance as mpf
# 日経平均株価のデータを取得
data = yf.download('^N225', start='2024-01-01', end='2024-09-01')
# ボリンジャーバンドを計算
std = data.Close.rolling(20).std()
mean = data.Close.rolling(20).mean()
upper = mean + (std * 2)
lower = mean - (std * 2)
add_plot = [mpf.make_addplot(upper), mpf.make_addplot(mean), mpf.make_addplot(lower)]
# ボリンジャーバンドの描画
mpf.plot(data, type='candle', volume=True, style='yahoo', title='NIKKEI (2024)', ylabel='Price', ylabel_lower='Volume', addplot=add_plot)
RSIの描画
mplfinanceを使ってRSIのグラフを追加します。
RSIはTA-Libを使って計算します。TA-Libの使い方については、下記の記事で解説しているのでご覧ください。
【Python】テクニカル分析ライブラリTA-Libの使い方を解説import yfinance as yf
import mplfinance as mpf
import talib
# 日経平均株価のデータを取得
data = yf.download('^N225', start='2024-01-01', end='2024-09-01')
# RSIを計算
data["rsi"] = talib.RSI(data['Close'], timeperiod=14)
data["upper"] = 70
data["lower"] = 30
add_plot = [mpf.make_addplot(data["rsi"], panel=1, secondary_y=False, ylabel="RSI"),
mpf.make_addplot(data["upper"], panel=1, secondary_y=False),
mpf.make_addplot(data["lower"], panel=1, secondary_y=False)]
# RSIの描画
mpf.plot(data, type='candle', volume=False, style='yahoo', title='NIKKEI (2024)', ylabel='Price', ylabel_lower='Volume', addplot=add_plot)
まとめ
以下は、mplfinanceについてのまとめです。
- mplfinanceは、初心者でも簡単に金融チャートを作成できるライブラリ。
- ローソク足チャートや移動平均線を使った視覚的な分析が可能。
- スタイルや色、表示内容を柔軟にカスタマイズできるため、好みに合わせてグラフを作成できる。
mplfinanceを使うことで、株価データを手軽に、そして効果的に可視化できることができます。移動平均線やボリンジャーバンドなどのテクニカル指標も簡単に追加できます。
特にローソク足チャートは株価の動きを理解するために欠かせないツールです。
ぜひ、実際にコードを試して、株価データを可視化してみましょう。