2014年9月27日土曜日

時刻で支払額をプロット

前回は日付ごとに支払額をプロットしていましたが、今回は 時刻ごとにしました。一日に数回支払いがあった場合のプロットが重なっていたのが分かれます。
スクリプト
options(error=function()traceback(2))
d = read.csv("auWALLET_201409.csv", skip=17, fileEncoding="shift_jis", header=F, stringsAsFactors=F)
names(d) = c("id","timestamp","kind","shop","amount","balance","campaign","foreign_amount","rate","dummy_column")
d$time = as.POSIXlt(d$timestamp, tz="JST", "%Y/%m/%d %H:%M")
tick = c("2014/9/1", "2014/9/5", "2014/9/10", "2014/9/15", "2014/9/20", "2014/9/25", "2014/9/30")
ticklab = sub("^..../(.*)$", "\\1", tick)
tickpos = as.numeric(as.POSIXlt(tick, tz="JST", "%Y/%m/%d"))
d$paid = abs(as.integer(gsub(",","",d$amount)))
# 支払のみをフィルタ
dpaid = d[d$kind=="支払",]
png("paid09.png")
plot(dpaid$time, dpaid$paid, ylim=c(0, 2500), xaxt="n", xlab="time", ylab="paid amount(yen)", main="paid amount")
# カスタマイズしたx軸を書く
axis(1, at=tickpos, label=ticklab)
lines(dpaid$time, dpaid$paid, ylim=c(0, 2500))
abline(h=mean(dpaid$paid), col=2)
abline(h=mean(dpaid$paid)+sd(dpaid$paid), col=3)
dev.off()
結果

解説
png画像を出力
png(出力ファイル名) 
...
dev.off()
でpngからdev.offまでのプロットを画像ファイルとして出力できます。
軸のカスタマイズ
plotのxaxt="n"でx軸のtickを書かない設定にしておいて、axis関数を読んでx軸のtickを書いています。
感想
データをのせないと実行して試せないから面白くないよな....。

0 件のコメント:

コメントを投稿