我有100年的时间序列气候数据。 使用基础图,我可以使用以下代码绘制年度平均值,然后绘制10年平均值:
plot(smoothprcp1yrs, col = "GREY")
lines(smoothprcp10yrs, col = "RED")
使用ggplot.zoo,绘制年度均值的代码如下:
ggplot(aes(x=Index,y=Value),data=fortify(smoothMaxtmp1yrs,melt=TRUE))+geom_line()
smoothMaxtmp1yrs
是我的对象。
是否可以使用ggplot.zoo在顶部添加另一行?
x.Date <- as.Date(paste(2003, 02, c(1, 3, 7, 9, 14), sep = "-"))
x <- zoo(rnorm(5), x.Date)
xlow <- x - runif(5)
xhigh <- x + runif(5)
z <- cbind(x, xlow, xhigh)
y.Date <- as.Date(paste(2003, 02, c(1, 3, 7, 9, 14), sep = "-"))
y <- zoo(rnorm(5), y.Date)
ylow <- y - runif(5)
yhigh <- y + runif(5)
a <- cbind(y, ylow, yhigh)
R基本情节如下:
plot(x)
lines(y, col = "red")
ggplot.zoo看起来像:
ggplot(aes(x = Index, y = Value), data = fortify(x, melt = TRUE)) +
geom_line() + xlab("Index") + ylab("x")
绘制y:
ggplot(aes(x = Index, y = Value), data = fortify(y, melt = TRUE)) +
geom_line() + xlab("Index") + ylab("x")
如何在x上添加y?
答案 0 :(得分:2)
使用ggplot图形合并动画片系列,然后使用autoplot.zoo
来绘制x和y。参数facet = NULL
告诉它不要为每个系列创建一个单独的面板。
library(zoo)
library(ggplot2)
autoplot(merge(x, y), facet = NULL) + ylab("Temperature")
答案 1 :(得分:1)
一种方法是提前将rbind
的{{1}}输出合并到fortify
中:
data.frame
然后你可以将df <- do.call("rbind", list(fortify(y, melt = TRUE), fortify(x, melt = TRUE)))
head(df)
# Index Series Value
# 1 2003-02-01 y -0.4688883
# 2 2003-02-03 y 1.2038141
# 3 2003-02-07 y 1.2194155
# 4 2003-02-09 y 0.9252823
# 5 2003-02-14 y 0.3187009
# 6 2003-02-01 x 0.2150564
传递给Series
和group
美学:
color