0

我正在尝试绘制一个带有箭头的向量图,用于从低值到高值的向量场。这是 vectorplot 函数的相反方向。该函数对此有一个选项,但是指定 reverse = T 不会改变结果。我该如何解决这个问题?来自 ?vectorplot 的可重现示例

library(raster); library(rasterVis)

proj <- CRS('+proj=longlat +datum=WGS84')

df <- expand.grid(x=seq(-2, 2, .01), y=seq(-2, 2, .01))
df$z <- with(df, (3*x^2 + y)*exp(-x^2-y^2))
r1 <- rasterFromXYZ(df, crs=proj)
df$z <- with(df, x*exp(-x^2-y^2))
r2 <- rasterFromXYZ(df, crs=proj)
df$z <- with(df, y*exp(-x^2-y^2))
r3 <- rasterFromXYZ(df, crs=proj)
s <- stack(r1, r2, r3)
names(s) <- c('R1', 'R2', 'R3')

vectorplot(r1, reverse=FALSE)# reverse  Logical, TRUE if arrows or streamlets go against the direction of the gradient.

vectorplot(r1, reverse=TRUE) # produce same results as vectorplot(r1, reverse=FALSE)

谢谢大家的小帮助。

4

1 回答 1

0

reverse选项仅在对象为矢量场 ( isField = TRUE) 时可用。尝试这个:

sa <- terrain(r1, opt=c("slope", "aspect"))
vectorplot(sa, isField = TRUE)
vectorplot(sa, isField = TRUE, reverse = TRUE)

您可以使用参数将原始栅格显示为背景region

vectorplot(sa, isField = TRUE, reverse = TRUE, region = r1)

改进了帮助页面中的文本。

于 2021-11-28T18:09:17.640 回答