Matplotlibとpandasで日経平均をグラフ化してみます。
コード
pandasをインポート
1 2 3 |
from pandas_datareader import data import pandas as pd import matplotlib.pyplot as plt |
pandas_datareaderは経済データや株価データなどを扱うことができます。
期間設定とヤフーファイナンスから日経平均株価の取得
1 2 3 4 |
start = '2020-01-01' end = '2020-12-31' df = data.DataReader('^N225','yahoo',start, end) df.head() |
変数startには2020年の元旦、変数endには2020年の大晦日を指定しました。
3行目でヤフーファイナンスから日経平均を取得しています。
‘^N225’は日経平均のティッカー
‘yahoo’は取得元のサイト
start, endは期間を指定し、変数dfに代入しています。
head関数で冒頭5行を出力しました。
Highは高値、Lowは安値、Openは始値、Closeは終値、Volumeは出来高、Adj Closeは調整済み終値を指します。
グラフ化
1 2 3 |
x = df.index #日付 y = df['Adj Close']#日経平均の調整済み終値 plt.plot(x,y) |
グラフ化のためのx軸とy軸にデータを代入していきます。
df.indexとありますが、変数dfのインデックス、先ほどの出力結果のDateの列に当たり、日時の日付を代入しています。
df[‘Adj Close’]は先ほどの出力結果の右端に同名の列がありますが、調整済み終値を代入しました。
ちなみに、調整済み終値は以下の通りです。
Yahoo!ファイナンスでは、株式分割の実施の前後で株価を連続的にとらえるために、分割実施前の終値を分割後の値に調整したものを「調整後終値」として表示しています。
グラフサイズの調整
1 2 |
plt.figure(figsize=(30,10))#30は横幅、10は縦幅 plt.plot(x,y) |
グラフの横幅と縦幅を指定します。
実行結果
横軸・縦軸の目盛値のフォントサイズを調整
1 2 3 4 |
plt.figure(figsize=(30,10))#30は横幅、10は縦幅 plt.xticks(fontsize=20) plt.yticks(fontsize=20) plt.plot(x,y) |
実行結果
横軸と縦軸のタイトルを設定
1 2 3 4 5 6 |
plt.figure(figsize=(30,10)) plt.xticks(fontsize=20) plt.yticks(fontsize=20) plt.xlabel('Date',fontsize=30) #x軸タイトル plt.ylabel('Price',fontsize=30) #y軸タイトル plt.plot(x,y) |
実行結果
グラフタイトルを設定
1 |
pip install japanize_matplotlib |
日本語表示のライブラリをインストール
1 2 3 4 5 6 7 |
impot japanize_matplotlib plt.figure(figsize=(30,10)) plt.xticks(fontsize=20) plt.yticks(fontsize=20) plt.xlabel('Date',fontsize=30) plt.ylabel('Price',fontsize=30) plt.title('日経平均株価2020',fontsize=35) #タイトルを追加 |
日本語表示するためのライブラリであるjapanize_matplotlibををインポートして、グラフタイトルを設定しました。
実行結果
参考
動画:キノコードmatplotlib第二回
今回はyoutubeでプログラミング解説動画をアップされているキノコードさんの動画を参考にさせて頂きました。
非常にわかりやすく見やすい動画なのでおすすめです。
Matplotlib & Seaborn 入門講座 | 03.【実践】株価のデータを折れ線グラフで可視化してみよう – YouTube
Pandas_datareaderについて
pandas_datareaderをインポートして使用しました。
今回はYahoo!ファイナンスから株価を取得していますが、他にも様々なサイトからデータを取得することができます。
例えば以下のサイトです。OECDやEurostat、Nasdaqなども含まれています。
調整済み終値
調整済み終値とは何か、気になる方はこちらのリンクへどうぞ。
まとめ
Matplotlibとpandasを用いてヤフーファイナンスから株価を取得し、グラフ化してみました。
Pythonの他の記事をこちらにまとめています。
コメント