Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

pandas で日経平均株価指数を plot する

More than 5 years have passed since last update.

何をするのか

Python のデータ処理ライブラリ pandas (http://pandas.pydata.org/) で遊んでいたら、

  1. Web から Finance 情報を取ってくる
  2. プロットする

というのがコードだけでできてすばらしかったので投稿。

コードと解説

import pandas.io.data as web
import matplotlib.pyplot as plt
import datetime

# 取得する日の範囲を指定する
start = datetime.datetime(2014, 1, 1)
end = datetime.datetime(2014, 9, 1)

# Yahoo ファイナンスから、 ^N225 (日経平均株価指数) を
# とってくる。
f = web.DataReader('^N225', 'yahoo', start, end)

plt.title('Nikkei 255 from 2014.1.1 to 2014.9.1')

# fill_between でその日の最高値と最低値をプロットする
plt.fill_between(f.index, f['Low'], f['High'], color="b", alpha=0.2)

# plot で、始値をプロットする。
# 自動的に Index が Date になっているので、横軸が時間になる。

f['Open'].plot()
print f[:10]
plt.show()

実行結果

pandas の DataFrame オブジェクトはこんな風に
表としてデータが保持される。

                Open      High       Low     Close  Volume  Adj Close
Date                                                                 
2014-01-06  16147.54  16164.01  15864.44  15908.88  192700   15908.88
2014-01-07  15835.41  15935.37  15784.25  15814.37  165900   15814.37
2014-01-08  15943.68  16121.45  15906.57  16121.45  206700   16121.45
2014-01-09  16002.88  16004.56  15838.44  15880.33  217400   15880.33
2014-01-10  15785.15  15922.14  15754.70  15912.06  237500   15912.06
2014-01-13  15912.06  15912.06  15912.06  15912.06       0   15912.06
2014-01-14  15657.20  15661.71  15383.69  15422.40  214500   15422.40
2014-01-15  15649.07  15808.73  15636.57  15808.73  185800   15808.73
2014-01-16  15845.15  15941.08  15710.14  15747.20  214200   15747.20
2014-01-17  15695.46  15783.37  15621.80  15734.46  180100   15734.46

プロット結果はこちら。
nikkei.png

ちなみに

^N225AAPL にすると Apple の株価が得られたりする。
日本の市場のアクセス API はまだ無いようだ。

mzmttks
ハイラブル株式会社の代表取締役。博士(情報学) カエルの研究をしてました。会話の定量化や分析をしてます。
https://www.mzmttks.com/
hylable
対面とオンラインの話し合いを可視化するクラウドサービスを開発・運営するスタートアップです。
https://www.hylable.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away