グラフのX軸に日付を入れる
金融系なんで、時系列データ良く扱うわけですがグラフのX軸に日付を入れる方法を毎回忘れるのでメモ。肝はaxis.Date関数。
こんな感じでコードを書く。
x <- Sys.Date() + 1:1000 y <- cumsum(rnorm(1000)) par(xaxt="n") plot(x, y, main = "Title",xlab = "Date", ylab = "Val", type = "l") par(xaxt = "s") axis.Date(1, at = seq(min(x),max(x),"years"))
par(xaxt="n")で一旦PLOT時にX軸書かせないよう設定した後にPLOTし、par(xaxt = "s")でまた軸を書けるようにしてaxis.Dateで日付を書く。結果はこんなグラフになる。
最後のaxis.Dateはaxisをオーバーライドしているわけではないっぽく、単純にaxisと書くと日付が生の数値そのまんま出てくるのでだめ。
同様に月単位でも表示可能。
x <- Sys.Date() + 1:300 y <- cumsum(rnorm(300)) par(xaxt="n") plot(x, y, main = "Title",xlab = "Date", ylab = "Val", type = "l") par(xaxt = "s") axis.Date(1, at = seq(min(x),max(x),"months"),format = "%Y/%m")
ちなみに日付ではなく時間で表示するaxis.POSIXctもあり。