【Python】為替データをグラフ化する

 

Pythonを使うと、データを読み込んで自分の好きな形のグラフにすることができます。

 

今回の記事では、ネットにある為替のデータを取得してグラフとして表示してみます。

 

「Pythonでグラフを書いてみたい」

 

そんな方に読んでいただければと思います。

 

スポンサーリンク

 

為替データの取得

 

まずは表示するためのデータをサイトから入手しましょう。

 

為替データは日本銀行のサイトにあります。

 

http://www.stat-search.boj.or.jp/

 

為替という項目があるので選択します。

 

 

1970年からのデータを取得するように、赤枠の部分を1970に書き換えます。そうしたら、下の方にスクロールします。

 

 

データ表示というボタンがあるのでそれを押すと、為替データのcsvファイルがダウンロードできます。ダウンロード後に、ファイル名が長いのでexchange.csvと名前を変更しました。

 

exchange.csv

 

macなので文字化けしちゃってますが、データはしっかりとありますね。これはあとで使うので、とっておきましょう。

 

必要なライブラリのインストール

 

Pythonのpandasとmatplotlibというライブラリをインストールします。

 

Anacondaを使っている方は、Anaconda Navigatorを起動しましょう。

 

 

Search Packagesの欄に「pandas」「matplotlib」と入れると出てくるのでそれぞれインストールしましょう。

左のドロップダウンメニューでは、Not Installedを選択して下さいね

 

 

インストールが終わるとこんな感じで追加されているのが確認できます。

 

コーディング

 

先ほどのcsvファイルを読み込んでグラフ化してみましょう。Pythonのコードとexchange.csvは同じディレクトリに配置してください。

 

データの読み込み(pandas)

 

Pandasを使って、データを読み込んでみます。

 

 

先ほどcsvの中身を見たときに文字化けしていたので、windowsの文字コードであるCP932を指定します。

 

実行してみると、以下のような出力になりました。

 

 

0行目がデータになっていません。列(カラム)とデータの対応が分かりづらいですし、データが無い列は無視したいですね。

 

以下のように、コードを書き換えてみます。

 

 

read_csvのパラメータを整理してみます。

 

header 指定した行からデータを読み込む
names 任意の列名を指定する
skipinitialspace スペースを無視する
index_col インデックスにしたい列を指定する
parse_dates 日付を加える

 

header=1になっているので、1行目から読み込むようにしています。0行目はデータに関係のない部分なのでスキップします。

 

namesで年月をdate、ドル・円レートをdol、為替レート指数をrateというようにカラムに名前をつけています。

 

index_colで、0列目つまりdateをindexとして読み込んでいます。

 

parse_datesは、dateに年月だけでなく日付を加えるようにしています。

 

実行結果は以下の通り。

 

 

整理されて必要なデータだけになりました。

 

グラフ化(matplotlib)

 

matplotlibを使って先ほどのデータをグラフ化します。

 

pandas_exchange.py

 

plotで描画するデータを指定しています。x軸に日付、y軸にドル・円レートを指定しています。

 

xlimとylimで、x軸とy軸の最小値と最大値を定め、savefigで保存するファイル名と解像度を指定します。

 

実行すると、以下のような画像ファイルが出来上がります。

graph

 

まとめ

 

・pandasを使うと、csvのデータを読み取ることができる
・データ読み取りの際には、パラメータを指定して必要なデータだけ読み取ろう
・matplotlibを使うと、グラフの描画ができる

 

参考

 

Python クローリング&スクレイピング データ収集・解析のための実践開発ガイド