PostgreSQLからクエリでデータを呼び出してグラフにプロットする
前回PostgreSQLにInsertしたデータを、クエリで呼び出してグラフにプロットしてみたいと思います。
こちらです。
コードを実行してみる
まず、IPythonからPostgreSQLへのコネクションを作成します。
import psycopg2 as pg
conn = pg.connect(dbname="forRDS",
host="forrds.xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com",
port=5432,
user="root",
password="xxxxxxxx")
pandasのSQL用ライブラリを利用します。
import pandas.io.sql as psql
実行するSQLは以下。至ってシンプルなセレクト文です。
sql = 'select * from usdjpy'
pandasのread_sqlでは、sqlクエリ, コネクション, インデックス等を指定し、DataFrameとしてデータを取得してくれます。ちなみにインデックスを指定するかfalseにしておかないと自動で番号が発番されてしまい、グラフのx軸に期間を表示できなくなります。
usdjpy = psql.read_sql(sql, conn, index_col = 'datetime')
usdjpy
IPython起動時(こちらを参照してください)にpylabをinlineで立ち上げているのでライブラリのimportの必要なくグラフをプロットできます。
Iusdjpy.plot()
余談
IPython起動時にpylabをinlineで立ち上げていましたが、matplotlibのほうがベターみたい・・・
iPython Notebookの--pylab inlineは使うのをやめようという話 - Wolfeyes Bioinformatics beta