気象データに表示されるような気象プロットを開発しようとしています-のようなものです。
毎日の値をプロットしたい(ただし、平均値は円で表示されます)。多面的(月と年ごと)が必要なため、ggplot2を使用しています。
st <- as.Date ("2009-1-1")
en <- as.Date ("2011-12-28")
date1 <- seq(st, en, "1 day")
year <- format(date1, "%Y")
month <- format (date1, "%b")
day <- as.numeric (format(date1, "%d"))
avgtm <- round (rnorm (length(date1), 50,5), 1)
maxtm <- avgtm + abs(rnorm (length (avgtm), 0, 5))
mintm <- avgtm - abs(rnorm (length (avgtm), 0, 5))
myd <- data.frame ( year, month, day, avgtm, maxtm, mintm)
require(ggplot2)
qplot(day, avgtm, data = myd, geom = "line", col = "red") +
facet_grid(year ~ month) + theme_bw()
ここで大きな問題が 1 つあります。回線が月間で接続されます。
各月は最大までプロットされます (ただし、1 か月が 28 で終わる場合は、その月が空白のままになります)。
私が達成したいことを達成するためのスマートな方法はありますか?私は ggplot2 を試しましたが、他にも良いオプションがあるかもしれません。
編集:
月の最初の日に垂直線を追加して、月を区切ろうとしています。ここで私は月の最初の日を見つけようとしました:
td = as.Date (seq(as.Date("2009/1/1"), as.Date("2011/12/28"), "months"))
これを使用して線をプロットしようとしました:
qplot(date, avgtm, data = myd, geom = "line", col = "red") +
facet_wrap(~year, scales='free_x', ncol=1, nrow=3) +
geom_vline(xintercept=td, linetype="dotted") + theme_bw()
しかし、エラーを実行しています: エラー: 無効なインターセプト タイプ: 数値ベクトル、関数、または関数の名前である必要があります
日付で垂直線をプロットするにはどうすればよいですか?