60分
・Plotlyを使って株データのローソク足チャートを作成
・Plotlyを使ってローソク足チャートと出来高を同時描画
このレッスンでは、株価分析において定番のローソク足チャートを作成していきます。
ここでは、「株データを取得してみよう!」のレッスンでもおこなったようにyFinanceというライブラリを使って株価を取得していきます。
「株データを取得してみよう!」のレッスンでもローソク足チャートは作成しましたが、ここではPlotlyを使って描画してみましょう!
ここではPython実行環境としてGoogle Colabを使う前提で話を進めていきます。
まず、必要なライブラリをインストールしていきましょう!Google Colabではいくつかのライブラリが事前にインストールされていますが、以下のライブラリはインストールが必要になります。
# yfinanceのインストール
!pip install yfinance==0.2.36
# Plotlyのインストール
!pip install plotly==5.18.0
続いて必要なライブラリをインポートしていきます。
import numpy as np # 数値計算を効率的に行うためのライブラリ (Numpy) をインポートします。
import pandas as pd # データ操作と分析のためのライブラリ (Pandas) をインポートします。
import plotly.express as px # 高レベルなグラフ作成APIを提供するPlotly Expressをインポートします。
from plotly.subplots import make_subplots # 複数のサブプロットを作成するための機能をインポートします。
import plotly.graph_objects as go # 複雑なグラフやチャートを作成するためのライブラリをインポートします。
from plotly.io import write_image, write_html # Plotlyの図を画像やHTMLファイルとして保存するための関数をインポートします。
import yfinance as yf # Yahoo Financeから金融データにアクセスするためのライブラリをインポートします。
今回は、Googleの株価を取得してみます。
以下のように記述することで株価を取得することができたのでした。
# 取得銘柄を指定
ticker = 'GOOG'
# 取得期間
period = '1y'
# 取得頻度
interval = '1d'
#データを収集
# yf.download(取得銘柄, 取得期間, 取得頻度)
data_df = yf.download(ticker, period=period, interval=interval)
data_df
こちらをベースに可視化をしていきましょう!
それではPlotlyを使ってローソク足チャートを作っていきましょう!
Plotlyにはローソク足用のメソッドが用意されており、以下のように記述します。
go.Candlestick(x,open,high,low,close)
事前にplotlyのgraph_objectsをgoと定義していることに注意してください。
import plotly.graph_objects as go
今回のGoogleの株価データに関しては以下のように記述することでローソク足チャートを描画できます。
# ローソク足チャートの作成
fig = go.Figure(
data=[
go.Candlestick(
x=data_df.index, # 日付データをX軸に設定
open=data_df['Open'], # 株価の開始価格
high=data_df['High'], # 株価の最高価格
low=data_df['Low'], # 株価の最低価格
close=data_df['Close'] # 株価の終了価格
)
]
)
# グラフのタイトルと軸ラベルの設定
fig.update_layout(
title='Google 株価', # グラフのタイトル
xaxis_title='日付', # X軸のタイトル
yaxis_title='株価 (USD)', # Y軸のタイトル
)
# 作成したローソク足チャートを表示
fig.show()
以下のようにキレイなローソク足チャートを描画することができました。
ちなみにこの際にローソク足チャート下のレンジスライダー(バー)を操作することで表示期間を自由に変えることが可能です。
またローソク足にカーソルをあわせることで詳細の情報を確認することができます。
サブプロットは、複数のグラフやチャートを一つの図内に配置する機能です。これにより、異なるデータセットやデータの関係を比較しやすくなります。
Plotlyでは、様々なタイプのグラフ(例えば、散布図、線グラフ、棒グラフなど)をサブプロットとして組み合わせることができます。
サブプロットを使う際はmake_subplots、add_trace、update_layoutが重要になってきます。
それぞれの使い方を簡単に確認していきましょう!
make_subplots(rows, cols)
make_subplotsは、Plotlyの図に複数のサブプロットを配置するための関数です。
簡単にいえば複数のグラフを埋め込む枠を先に作っておくイメージです。
add_trace(trace, row, col)
add_traceは、Plotlyで図(Figureオブジェクト)に新しいデータトレース(グラフの一部分、例えば線グラフの一本の線や、バーチャートの一群のバーなど)を追加するためのメソッドです。
このメソッドを使用して、図に様々な種類のグラフィカルなデータ表現を追加することができます。
update_layout(height, width, title_text)
update_layoutは、PlotlyのFigureオブジェクトのレイアウトを更新またはカスタマイズするために使用されます。
このメソッドを使用して、図のタイトル、軸のラベル、レジェンドの位置、グラフのサイズ、マージン、背景色など、図の外観に関する多くの側面を調整することができます!
それでは実際にローソク足チャートと出来高のグラフを含むサブプロットを作成していきましょう!以下のように記述していきます。
# ローソク足チャートと出来高のグラフを含むサブプロットを作成
fig = make_subplots(rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.02, subplot_titles=('ローソク足チャート', '出来高'), row_width=[0.2, 0.7])
# ローソク足チャートを追加
fig.add_trace(go.Candlestick(
x=data_df.index, # 日付データをX軸に設定
open=data_df['Open'], # 株価の開始価格
high=data_df['High'], # 株価の最高価格
low=data_df['Low'], # 株価の最低価格
close=data_df['Close'], # 株価の終了価格
name='株価'
), row=1, col=1)
# 出来高のグラフを追加
fig.add_trace(go.Bar(
x=data_df.index,
y=data_df['Volume'],
marker_color='blue',
name='出来高'
), row=2, col=1)
# スライダーを設定
fig.update_layout(
xaxis_rangeslider_visible=False, # ローソク足チャートの下のデフォルトスライダーを非表示にします。
xaxis2_rangeslider_visible=True, # 出来高チャートの下にスライダーを表示します。
xaxis2_title="日付",
yaxis_title="株価",
yaxis2_title="出来高",
)
# 作成したグラフを表示
fig.show()
以下のようにローソク足と出来高を同時に描画することができました!
他の銘柄を使ってローソク足チャートと出来高を描画してみよう!