我想用filled.contour
绘制带有背景图像的热图。我知道filled.contour
实际上是两个图,并且可以添加plot.axes
点。你能用图像做这个吗?下面的代码绘制了热图上的图像,但我想将图片作为背景。
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)
z <- outer(x,y,FUN = wrapper, my.fun=MyFunction)
image <- readPNG("imagepath\\image.png")
filled.contour(
x,y,z, col=rev(heat.colors(n=20, alpha=0.7)), nlevels=15,plot.axes={
rasterImage(image, x[1], y[1],x[length(x)],y[length(y)]);
points(0,0,pch=4)
})
解决此问题的另一种方法是
plot(x,y,type="n")
rasterImage(image, x[1], y[1],x[length(x)],y[length(y)])
filled.contour(x,y,z, add=TRUE)
而不是MWE中的最后一次filled.contour
调用,但不幸的是,add=TRUE
没有filled.contour
选项。
我应该前往lattice
的{{1}}吗?