在栅格地图的 gplot 上绘制矩形
Draw rectangle on gplot of raster map
我正在使用 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))
Error in eval(expr, envir, enclos) : object 'y' not found
我做错了什么?
geom_rect
期望早点(明确或隐含地)声明所有美学,但 df
中没有 y
。使用参数 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))
我正在使用 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))
Error in eval(expr, envir, enclos) : object 'y' not found
我做错了什么?
geom_rect
期望早点(明确或隐含地)声明所有美学,但 df
中没有 y
。使用参数 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))