将图像添加到R中的filled.contour图中 - 或者相反

时间:2013-10-18 15:04:22

标签: r plot

我想用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}}吗?

0 个答案:

没有答案