【发布时间】:2013-11-18 17:51:18
【问题描述】:
我想做一个有背景图片的levelplot。以下代码提示错误消息Error in rasterImage(image, x[1], y[1], x[length(x)], y[length(y)]) :
plot.new has not been called yet - 显然rasterImage 无法将打印的levelplot 对象识别为绘图。什么是合适的方法而不是rasterImage?
library("png")
library("lattice")
library("latticeExtra")
MyFunction <- function(x,y){
return(
dnorm(sqrt(x^2+y^2))
)
}
meshstep <- 0.2
x<- seq(-20,20,meshstep)
y <-seq(-20,20,meshstep)
image <- readPNG("imagepath\\image.png")
grid <- expand.grid(x=x, y=y)
grid$z<- MyFunction(grid$x,grid$y)
MyPalette <- colorRampPalette(c('white','yellow', 'red'))
levels <- 10
p<- levelplot(z~x*y, grid, cuts = levels, xlab="",
ylab="",
colorkey = TRUE, region = TRUE,col.regions=MyPalette(levels+1),
alpha.regions=0.3)
plot(p)
rasterImage(image, x[1], y[1],x[length(x)],y[length(y)])
【问题讨论】:
-
您正在尝试混合两种不同的绘图范例。坐标系将需要匹配。有关所需的背景信息,请参阅包“gridBase”和“latticeExtra”中的文档。