
まくまく
Pythonを使用して過去70年分の日経平均株価を取得します。使用するライブラリはpandas_datareaderです。
出力
70年分の日経平均株価を取得しグラフ化してみました。
1950年に108円だった日経平均株価が1980年くらいから急激に上がり始め、1989年12月29日の38,957円をピークにバブル崩壊。2010年代に入り、アベノミクスとともに株価は上昇。2021年にはバブル期以来の3万円を回復。
長期間をグラフにするとこれまでの流れが分かりやすくて良いですね。
こんな感じでcsvファイルも出力できます。始値、高値、安値、終値、出来高が取得できています。
サンプルプログラム
#ライブラリのインポート
from pandas_datareader.stooq import StooqDailyReader
from datetime import datetime
import matplotlib.pyplot as plt
#株価取得範囲を設定
start = datetime(1950, 1, 1)
end = datetime(2021, 11, 1)
#銘柄コードを入力
stock = '^NKX'
#株価取得
df = StooqDailyReader(stock, start=start, end=end)
df_stock = df.read()['Close']
print(df_stock)
#matplotlibで株価をグラフ化
df_stock.plot(figsize=(16,8),fontsize=18)
plt.legend(bbox_to_anchor=(0, 1), loc='upper left', borderaxespad=1, fontsize=18)
plt.grid(True)
plt.title('N225 Graph',fontsize=18)
#plt.ylim(0, 30000)
plt.savefig("N225 graph.png")
plt.show()
df_stock.to_csv("N225.csv", encoding="UTF-8", index=True)
コメント
start = datetime(1950, 1, 1)
end = datetime(2021, 11, 1)
startとendに入力した期間のデータを取得できます。
今回取得したのは70年分ですが、ここの期間設定によって1年でも10年でも50年でも取得可能です。
#株価取得
df = StooqDailyReader(stock, start=start, end=end)
df_stock = df.read()['Close']
取得したデータには始値、高値、安値、終値、出来高がありますが、そのなかの終値(Close)だけを選択しグラフ化します。
#plt.ylim(0, 30000)
グラフのY軸の範囲を変更する場合はこれ。
plt.savefig("N225 graph.png")
グラフはPNGで保存するようにしました。
df_stock.to_csv("N225.csv", encoding="UTF-8", index=True)
csvファイルで書き出す設定。文字化けする場合、encodingをShift_JISへ変更。