R 中的时间序列图:从图中删除间隙 [zoo]
Time series plot in R: Remove gaps from plot [zoo]
我通过从 RasterBrick 中提取时间序列创建了一个动物园对象:
library(zoo)
s <- RasterBrick
target_cell <- 23265
ss <- zooExtract(s, target_cell)
windows()
plot.zoo(ss, type = "o")
我的结果如下所示。我想要一条线穿过所有的点,但我似乎无法让它发挥作用,我已经查看了以前对这个问题的回答。我已经尝试 lines()
并且它给出了相同的结果。
正如@Richard Telford 所说,图中的空白是由于缺少数据造成的。
使用基函数 complete.cases
和 na.locf
来自 zoo
的差距
可以删除或填充以前的观察结果,如下所示:
#to identity periods with missing data
missingPeriod = as.Date(index(ss[!complete.cases(ss),]))
#to retain only periods with no missing data
ssComplete = ss[complete.cases(ss),]
#to retain all periods with gaps filled with previous value
#maxgap parameter controls number of missing data replaced with prev observation
N = 5
ssFilled = zoo::na.locf(ss,maxgap=N);
#plots
plot.zoo(ssComplete , type = "o")
plot.zoo(ssFilled, type = "o")
我通过从 RasterBrick 中提取时间序列创建了一个动物园对象:
library(zoo)
s <- RasterBrick
target_cell <- 23265
ss <- zooExtract(s, target_cell)
windows()
plot.zoo(ss, type = "o")
我的结果如下所示。我想要一条线穿过所有的点,但我似乎无法让它发挥作用,我已经查看了以前对这个问题的回答。我已经尝试 lines()
并且它给出了相同的结果。
正如@Richard Telford 所说,图中的空白是由于缺少数据造成的。
使用基函数 complete.cases
和 na.locf
来自 zoo
的差距
可以删除或填充以前的观察结果,如下所示:
#to identity periods with missing data
missingPeriod = as.Date(index(ss[!complete.cases(ss),]))
#to retain only periods with no missing data
ssComplete = ss[complete.cases(ss),]
#to retain all periods with gaps filled with previous value
#maxgap parameter controls number of missing data replaced with prev observation
N = 5
ssFilled = zoo::na.locf(ss,maxgap=N);
#plots
plot.zoo(ssComplete , type = "o")
plot.zoo(ssFilled, type = "o")