我想将函数的水平图绘制为热图,我不确定我是否以最有效的方式为绘图初始化网格。目前,我正在使用下面的代码,我想知道是否grid$z<- wrapper(grid$x,grid$y,MyFunction)
真的是分配 -Values 的最佳方式z
,假设它MyFunction
可能不知道如何处理向量值参数。
library("lattice")
MyFunction <- function(x,y){
return(
dnorm(sqrt(x^2+y^2))
)
}
wrapper <- function(x, y, my.fun, ...) {sapply(seq_along(x), FUN = function(i) my.fun(x[i], y[i], ...))}
meshstep <- 0.5
x<- seq(-20,20,meshstep)
y <-seq(-20,20,meshstep)
grid <- expand.grid(x=x, y=y)
grid$z<- wrapper(grid$x,grid$y,MyFunction)
p<- levelplot(z~x*y, grid, cuts = 10, xlab="",
ylab="", main="Distance to the Origin", sub="In pretty Colors"
colorkey = TRUE, region = TRUE)
print(p)