ここまで、時系列データのプロットで覚えておくと良いポイントを記事にまとめてきました。今回は、それらの時系列データシリーズの最後として、実際に株価の推移をみるときにも使われる ローソク足チャートや OHLCチャートについての描き方をまとめていきます!
- 時系列データのプロット (Plotly) : 金融系に限らない時系列データのプロットの基本
- 時系列データ よく使う分析をボタンで切り替える方法!(Range Selector)
- (実践編) 金融系のプロット Candle Stick, OHLC Chart の描き方 : (今回!)
これまでの記事は、こちらから!
この記事で使用するデータ
この記事では、Appleの日ごとの株価の推移のデータを使ってまとめていきます!
使用するライブラリとデータの準備は以下の通り。
import pandas as pd
import plotly.graph_objects as go
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
カラムの簡単な説明
- Date : 日付
- APPL.Open : その日のはじめについた値段 (始値)
- APPL. High : 最も高くついた値段 (高値)
- APPL. Low : 最も低くついた値段 (安値)
- APPL. Close: その日最後についた値段 (終値)
ローソク足チャート (Candlestick Charts)
ローソク足チャートとは?
日本発祥の図であり、海外でも広く使われているローソク足チャートですが、起源は江戸時代にあるといわれています。
ローソク足は、一定の区間内での 始値, 高値, 安値, 終値 の 4つの値を用いて書く図になります。形としては、箱ひげ図に似ていますね! 箱ひげ図でいうところの「箱の部分」を始値から終値までの値で表し、そこから外側に「ひげ部分」として安値と高値を描画していきます。
また、始値と終値のうちどちらが高いかによって、色を変えて描くので一目で分析することができ、有用なグラフの一つです。
Plotly での描き方
graph_object内に ローソク足チャートを書くことができる メソッドが用意されているので、それを活用し、引数には時系列のデータを横軸にとり、他には上記の4つの値をとります。
基本的な書き方は以下の通り
fig = go.Figure()
fig.add_trace(go.Candlestick(
x=df['Date'], #時系列データ (今回は一日ごと)
open=df['AAPL.Open'], # 始値
high=df['AAPL.High'], # 高値
low=df['AAPL.Low'], # 安値
close=df['AAPL.Close'])# 終値
)
fig.show()
実際にグラフを書いてみると、下のような図になります!
全体を見ていると、ひげ部分がわかりにくいですが、拡大してみると箱部分とひげ部分がよく見えることがわかると思います
!
OHLC チャート
OHLC チャートとは?
OHLC とは、 Open, High, Low, Close の略であり、それぞれローソク足チャートでも出てきた 始値, 高値, 安値, 終値 に対応しています。 その名前の由来からある通り、ローソク足チャートと同様な図といえるのですが、表示の仕方が異なります。
ローソク足チャートでは、箱とひげの部分によってあらわしていた部分が、OHLC チャートでは高値から安値までを線分で表し、始値と終値をその線分から左右に伸ばす形で描画しているところが特徴的です。
plotly での描き方
ローソク足チャートと必要な引数自体は同じなので、メソッド名を変え go.Candlstick を go.Ohlc と変えるだけでOHLCチャートも書くことができます!
fig = go.Figure()
fig.add_trace(go.Ohlc(
x=df['Date'], #時系列データ (今回は一日ごと)
open=df['AAPL.Open'], # 始値
high=df['AAPL.High'], # 高値
low=df['AAPL.Low'], # 安値
close=df['AAPL.Close'])# 終値
)
fig.show()
オプション (応用編)
ここまでは、ローソク足チャートと OHLCチャートの基本的な描き方についてまとめてきましたが、 これらに共通するグラフの応用編についてまとめていきます!
Range Slider の非表示
こちら 時系列データのプロット (Plotly) の記事でも紹介した RangeSliderは、メインのグラフを拡大させても全体像が把握しやすうようにする役割を果たしますが、ローソク足・OHLC チャートではデフォルトでこの機能がオンになっています。
そのため、非表示にしたいときには、下の一行を加えると非表示にすることができます! (これは、表示のときと同じ文で rangeslider_visible が True か False かで表示・非表示を切り替えているだけですね!)
fig.update_xaxes(rangeslider_visible=False)
色を変更
始値 < 終値 のときの色を increasing_line_color として、
始値 > 終値 のときの色を decreasing_line_color として設定することができます
increasing_line_color= 'red', decreasing_line_color= 'gray'
サンプルコード
#この2つは CandleStick, OHLC共通
# rangeSlider なし
# 上昇、下降時の色設定
fig = go.Figure()
fig.add_trace(go.Candlestick(
x=df['Date'],
open=df['AAPL.Open'],
high=df['AAPL.High'],
low=df['AAPL.Low'],
close=df['AAPL.Close'],
increasing_line_color= 'red', decreasing_line_color= 'gray'
)
)
fig.update_xaxes(rangeslider_visible=False)
fig.show()
コメント