我正在尝试绘制xts数据(年降雨量)并在其上添加趋势线(例如黄土)。有人可以建议选择绘制趋势线,而无需将xts转换为ts。
示例数据:
>RainXts
Rf
1978-12-31 1416.95
1979-12-31 881.152
1980-12-31 1437.75
1981-12-31 881.10
1982-12-31 966.07
1983-12-31 1387.61
1984-12-31 1013.58
1985-12-31 1180.57
1986-12-31 1162.35
1987-12-31 883.92
1988-12-31 955.84
1989-12-31 828.472
1990-12-31 1208.72
1991-12-31 1324.72
1992-12-31 1096.2
1993-12-31 1454.64
1994-12-31 874.64
1995-12-31 941.92
1996-12-31 883.92
1997-12-31 793.44
注意:将xts转换为ts对象并使用以下命令工作(其中RainTs = as.ts(RainXts))
lines(lowess(time(RainTs),RainTs),col="red")
答案 0 :(得分:0)
如果您使用df$date <- as.Date(rownames(RainXts))
将数据转换为data.frame,这是ggplot的快捷方式:
ggplot(df, aes(date, Rf)) +
geom_point() +
stat_smooth()
使用的数据框:
df<- structure(list(Rf = c(1416.95, 881.152, 1437.75, 881.1, 966.07,
1387.61, 1013.58, 1180.57, 1162.35, 883.92, 955.84, 828.472,
1208.72, 1324.72, 1096.2, 1454.64, 874.64, 941.92, 883.92, 793.44
), date = structure(c(3286, 3651, 4017, 4382, 4747, 5112, 5478,
5843, 6208, 6573, 6939, 7304, 7669, 8034, 8400, 8765, 9130, 9495,
9861, 10226), class = "Date")), class = "data.frame", .Names = c("Rf",
"date"), row.names = c(NA, -20L))