我正在使用rasterVis::gplot()
绘制由raster
包创建的栅格图层。单独绘制栅格工作正常:
library(raster)
library(rasterVis)
r1 <- raster(nrow=10, ncol=10)
values(r1) <- runif(ncell(r1))
gplot(r1) +
geom_raster(aes(fill=value))
但是当我尝试在情节geom_rect()
上添加一个矩形时,我收到错误
df <- data.frame(xmin=-50, xmax=50, ymin=-50, ymax=50)
gplot(r1) +
geom_raster(aes(fill=value)) +
geom_rect(data=df, aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax))
eval(expr,envir,enclos)中的错误:找不到对象'y'
我做错了什么?
答案 0 :(得分:1)
geom_rect
期望先前(明确地或隐含地)声明所有美学,但y
中没有df
。使用参数inherit.aes = FALSE
关闭此行为。
gplot(r1) +
geom_raster(aes(fill=value)) +
geom_rect(data=df, aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax),
inherit.aes = FALSE)
或者,使用annotate
添加矩形。
gplot(r1) +
geom_raster(aes(fill=value)) +
with(df, annotate(geom = "rect", xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax))