Pandasとmplfinanceでローソク足チャートを作成する方法【初心者向け完全ガイド】

 

株価やFXなどの金融データを分析する際に欠かせないのがローソク足チャートです。この記事では、PythonのPandasとmplfinanceライブラリを使って、簡単にローソク足チャートを作成する方法を詳しく解説します。

ローソク足チャートとは

ローソク足チャートは、金融市場における価格の動きを視覚的に表現するためのチャートです。1つのローソク足には以下の4つの価格情報が含まれています:

  • 始値(Open): その期間の最初の価格
  • 高値(High): その期間の最高価格
  • 安値(Low): その期間の最安価格
  • 終値(Close): その期間の最後の価格

必要なライブラリのインストール

まず、必要なライブラリをインストールします。

pip install pandas mplfinance yfinance

基本的なローソク足チャートの作成

データの準備

import pandas as pd
import mplfinance as mpf
import yfinance as yf

# 株価データの取得(トヨタ自動車の例)
ticker = "7203.T"
data = yf.download(ticker, start="2023-01-01", end="2023-12-31")

最もシンプルなローソク足チャート

# 基本的なローソク足チャートを作成
mpf.plot(data, type='candle')

このコードを実行すると、基本的なローソク足チャートが表示されます。

データの構造を理解する

mplfinanceでローソク足チャートを作成するには、データフレームが特定の形式である必要があります。

# データ構造を確認
print(data.head())
print(data.columns)

必要な列名は以下の通りです:

  • Open: 始値
  • High: 高値
  • Low: 安値
  • Close: 終値

カスタマイズしたローソク足チャートの作成

スタイルの変更

# スタイルをカスタマイズ
mpf.plot(data, 
         type='candle',
         style='charles',
         title='株価チャート',
         ylabel='価格(円)')

出来高を追加

# 出来高付きのチャート
mpf.plot(data,
         type='candle',
         volume=True,
         style='charles')

移動平均線の追加

単純移動平均線

# 移動平均線を計算
data['SMA20'] = data['Close'].rolling(window=20).mean()
data['SMA50'] = data['Close'].rolling(window=50).mean()

# 移動平均線付きチャート
apds = [mpf.make_addplot(data['SMA20'], color='red'),
        mpf.make_addplot(data['SMA50'], color='blue')]

mpf.plot(data,
         type='candle',
         addplot=apds,
         style='charles')

チャートの保存

画像ファイルとして保存

# チャートをPNGファイルで保存
mpf.plot(data,
         type='candle',
         style='charles',
         savefig='candlestick_chart.png')

高解像度での保存

# 高解像度で保存
mpf.plot(data,
         type='candle',
         style='charles',
         savefig=dict(fname='chart_hd.png', dpi=300))

期間を指定したチャートの作成

特定期間のデータを抽出

# 2023年7月のデータのみ
july_data = data['2023-07']

mpf.plot(july_data,
         type='candle',
         style='yahoo',
         title='2023年7月の株価')

よく使われるスタイルオプション

利用可能なスタイル

# 使用可能なスタイルを確認
print(mpf.available_styles())

主要なスタイルには以下があります:

  • default: デフォルトスタイル
  • charles: クラシックなスタイル
  • yahoo: Yahoo Financeライクなスタイル
  • nightclouds: ダークテーマ

エラーハンドリングとトラブルシューティング

よくあるエラーと対処法

# データに欠損値がある場合の処理
data_clean = data.dropna()

# インデックスが日付でない場合
if not isinstance(data.index, pd.DatetimeIndex):
    data.index = pd.to_datetime(data.index)

mpf.plot(data_clean, type='candle')

パフォーマンス最適化のヒント

大量データの処理

# 大量データの場合はサンプリング
large_data = data.resample('W').agg({
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Close': 'last',
    'Volume': 'sum'
})

mpf.plot(large_data, type='candle', volume=True)

まとめ

この記事では、Pandasとmplfinanceを使ったローソク足チャートの作成方法を解説しました。基本的な作成方法から、カスタマイズ、移動平均線の追加、ファイル保存まで幅広くカバーしています。

ポイント

  • データはOpenHighLowCloseの列を含む必要がある
  • mplfinancematplotlibベースで高度なカスタマイズが可能
  • 移動平均線などの指標はaddplotで簡単に追加できる
  • 様々なスタイルから選択して見た目をカスタマイズ可能

これらの知識を活用して、効果的な金融データの可視化を行ってください。