Pythonを使ってグラフを表示する – STEP3 終値の線グラフと一緒に始値の線グラフを表示する

当サイトではアフィリエイト広告を利用して商品を紹介しています。
当サイトではアフィリエイト広告を利用して商品を紹介しています。

STEP3 終値の線グラフと一緒に始値の線グラフを表示する

前回のコードは以下の通り

# ライブラリのインポート
from pandas_datareader import data
from datetime import date
from dateutil.relativedelta import relativedelta
import plotly.graph_objects as go

1つ目のセルにはライブラリのインポートをまとめておきます。

# アップルの株価データを取得
ticker = 'aapl'
end = date.today()
start = end - relativedelta(years=1)
df = data.DataReader(ticker, 'stooq', start, end)

2つ目のセルにはグラフで使うアップルの株価データを取得するコードが格納されています。

# 終値の線グラフを表示
fig = go.Figure(go.Scatter(x=df.index, y=df['Close']))
fig.update_layout(title='AAPL Close Chart', xaxis_title='Date', yaxis_title='Close Price($)')
fig.show()

3つ目のセルにはアップルの株価の終値の線グラフを表示するコードが格納されています。

グラフを表示するコードの意味を理解する

STEP2ではひとまず簡単な説明だけでグラフを表示しました。
しかし今回のように複数のグラフを一緒に表示するためにはコードの意味を理解しておくと理論的に分かりやすいので前回の復習も兼ねてコードを細かく見ていきます。

fig = go.Figure()
fig.show()

まず、Figureの意味を調べると「図」だと分かります。
それを踏まえて上記の最小のコードを実行します。

そうすると縦軸と横軸だけが表示された「図」が表示されます。
次に「図」上にグラフを表示します。

fig = go.Figure(go.Scatter(x=df.index, y=df['Close']))
fig.show()

前回は上記のようにコードを書いていましたが異なる書き方があります。
単純なグラフだといいのですが、複雑になると上記の書き方では対応できません。
そこでadd_traceを使うことで対応できるようになります。

fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df['Close']))
fig.show()

add_traceを使って書くと上記のようになります。
add_traceはFigureでできた白紙の「図」にScatterを追加するイメージで考えると分かりやすいです。
実行します。

グラフが表示されました。
またグラフのデータを元に縦軸の数値と横軸の日付が自動的に目盛りが追加されて基本的なレイアウトが出来上がっています。
次にグラフタイトルと縦軸と横軸の項目名を追加します。
そこでupdate_layoutを使います。

fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df['Close']))
fig.update_layout(title='AAPL Chart', xaxis_title='Date', yaxis_title='Price($)')
fig.show()

update_layoutを使って書くと上記のようになります。
update_layoutは文字通りグラフのレイアウトをアップデートするイメージで考えると分かりやすいです。
実行します。

想定通り表示されました。

終値の線グラフと一緒に始値の線グラフを表示する

では本題に移りましょう。
以上の説明でコードの意味を理解できれば簡単です。

fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df['Close']))
# 追加
fig.add_trace(go.Scatter(x=df.index, y=df['Open']))
fig.update_layout(title='AAPL Chart', xaxis_title='Date', yaxis_title='Price($)')
fig.show()

add_traceで新たなグラフを追加するだけで複数のグラフを表示できます。
アップルの株価の終値の線グラフを表示するコードを参考にして引数yのCloseをOpenに変更して実行すると2つのグラフが一緒に表示されます。

グラフが複数になると自動的に色分けしてラインの項目名が表示されています。
ところが「trace 0」、「trace 1」と何を表しているのか分かりません。

fig.add_trace(go.Scatter(name='Close Price', x=df.index, y=df['Close']))
fig.add_trace(go.Scatter(name='Open Price', x=df.index, y=df['Open']))

そこで各グラフのScatter内に引数nameで項目名を追加します。
実行すると項目名が変更されます。

次回は株価データの出来高の棒グラフを追加して表示する

以上で終値の線グラフと一緒に始値の線グラフを表示しました。
次回は終値の線グラフに出来高の棒グラフを追加して表示します。

タイトルとURLをコピーしました