作为Adding a background image to a levelplot的后续内容,我将levelplot
导出到png文件,我想知道如何访问该格子对象的宽度和高度以通过它作为png
的参数。
library("png")
library("lattice")
library("latticeExtra")
MyFunction <- function(x,y){
return(
dnorm(sqrt(x^2+y^2)))}
meshstep <- 0.2
x<- seq(-30,30,meshstep)
y <-seq(-20,20,meshstep)
image <- readPNG(system.file("img", "Rlogo.png", package="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.5)
+ layer(grid.raster(as.raster(image)), under=TRUE)
trellis.device(device="png", filename="MWE.png")
print(p)
dev.off()
对于生成的png文件,宽度和高度为480px,因为这是默认值。我想写trellis.device(device="png", filename="MWE.png", width=width(p), height=height(p))
或类似的东西,以保持x和y轴均匀分布。
答案 0 :(得分:0)
晶格图的高度和宽度是使用中的图形设备的尺寸。所以我认为你应该在这里设置你的png设备的大小。
png(width=500, height=700)
p ## your plot command here
dev.off()