我有以下格式的每日降水数据:
> head(df)
I_2004 G_2004 T_2004 Date
1 3628.79853 2199.310 12741.413 2004-01-01
2 1556.66704 4322.884 5464.395 2004-01-02
3 20.43379 5592.103 72.998 2004-01-03
4 265.94247 8145.041 942.344 2004-01-04
5 914.93958 9668.531 3227.579 2004-01-05
6 2585.63558 6825.905 9043.866 2004-01-06通常,我使用ggplot2绘制所有三个变量的时间序列:
dfmelt<-melt(df,id.vars="Date")
ggplot(dfmelt,aes(x=Date,y=value,
col=variable,group=12))+
labs(title='ANNUAL')+
geom_line()我曾使用hydroTSM绘制ts,但从未使用多变量t。我想知道是否有任何方法可以使用像hydroTSM这样的软件包来实现这个目标?
我目前的方法需要修改内容,这样做多年是很费时的。我希望用hydroTSM或任何其他合适的软件包来缩短这段时间。我的目标是绘制每月和季节的时间序列图。
发布于 2022-11-08 15:12:00
我们在下面使用一个更大的数据框架(见末尾的说明),这样就可以显示月份的图表了。将数据帧df转换为动物园系列-- hydroTSM使动物园可用--并使用autoplot.zoo。使用“集合”和“尾”或“平均值”创建一个月图,并将其转换为ts以创建季节图。除了ggplot2之外,下面的包只使用hydroTSM已经拉进来的包。
library(ggplot2)
library(hydroTSM)
z <- read.zoo(df, index = "Date")
autoplot(z) # separate panels
autoplot(z, facets = NULL) # single panel
# monthly plot
zm <- aggregate(z, as.yearmon, tail, 1, frequency = 12)
autoplot(zm)
# for seasonal plot
tt <- as.ts(zm)
nc <- ncol(tt)
opar <- par(mfrow = c(nc, 1), mar = c(2, 4, 0, 4))
for(j in 1:nc) monthplot(tt[, j], ylab = colnames(tt)[j])
par(opar)

备注
df呈可复制的形态。比所讨论的要大,这样就可以显示每月的情节。
set.seed(123)
n <- 700
df <- data.frame(I_2004 = rnorm(n),
G_2004 = rnorm(n),
T_2004 = rnorm(n),
Date = as.Date("2004-01-01") + 1:n - 1)https://stackoverflow.com/questions/74362748
复制相似问题