【初心者向け】mplfinanceで株価データを可視化する方法を徹底解説

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

今回は、Pythonの金融チャート専用ライブラリである「mplfinance」を使って、株価データを簡単に可視化する方法を初心者向けに解説します。

mplfinanceを使うと、ローソク足チャートを含む様々な金融チャートを素早く作成できます。

株式投資に興味がある方、金融データを視覚的に理解したい方におすすめです。

mplfinanceとは

mplfinanceは、可視化ライブラリのMatplotlibをベースにした金融データの可視化専用ライブラリです。

シンプルなコマンドで、ローソク足チャートや出来高、移動平均線など、株価データを視覚的に把握できるツールを簡単に作成できます。

初心者でも手軽に使用できるため、金融データの分析を始めたい人におすすめです。

mplfinanceをインストール

コマンドプロンプトからpipでインストールできます。

TeX
pip install mplfinance

PyCharmを使用されている場合は、画面下部のPythonパッケージからでもインストールできます。

mplfinanceでローソク足チャートを描画

まずは、Pythonのライブラリのyfinanceで株価データを取得します。

yfinanceの使い方については、下記の記事で解説しているのでご覧ください。

【Python】yfinanceの使い方を徹底解説!日本株や米国株の株価データや財務情報、為替データを取得する方法

今回は、日経平均株価の価格データを使用します。データを取得するコードは以下の通りです。

Python
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を使って最も基本的なローソク足チャートを描画するには、以下のコードを実行します。

Python
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となります。

移動平均線の追加

次に、株価分析でよく使われる「移動平均線」をチャートに追加してみましょう。移動平均線は、価格の長期的なトレンドを把握するために役立ちます。

Python
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では、チャートの色やスタイルを自由にカスタマイズできます。例えば、以下のコードではローソク足の色などを変更しています。

Python
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を使ってボリンジャーバンドを表示するコードです。

Python
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の使い方を解説
Python
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を使うことで、株価データを手軽に、そして効果的に可視化できることができます。移動平均線やボリンジャーバンドなどのテクニカル指標も簡単に追加できます。

特にローソク足チャートは株価の動きを理解するために欠かせないツールです。

ぜひ、実際にコードを試して、株価データを可視化してみましょう。