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を使ったローソク足チャートの作成方法を解説しました。基本的な作成方法から、カスタマイズ、移動平均線の追加、ファイル保存まで幅広くカバーしています。
ポイント
- データは
Open、High、Low、Closeの列を含む必要がある mplfinanceはmatplotlibベースで高度なカスタマイズが可能- 移動平均線などの指標は
addplotで簡単に追加できる - 様々なスタイルから選択して見た目をカスタマイズ可能
これらの知識を活用して、効果的な金融データの可視化を行ってください。



