在 R 中创建交互式绘图

Create interactive plot in R

我想知道在 R (RStudio) 中是否可以有一个交互式绘图,用户可以在其中单击图像并将其用作即将进行的处理的输入。这是我的情况:

我绘制了一个光栅

plot(NDVI[[4]])

[![在此处输入图片描述][1]][1]

然后,我添加包含多边形限制的第二层:

plot(fields, add=TRUE)

[![在此处输入图片描述][2]][2]

我的 objective 是用户点击图像 select 其中一些多边形(比方说 3)。这些点击用于识别那些稍后将用于导出它们所代表区域内的平均栅格值的多边形。

到目前为止,我一直在这样做更新一个包含点的 shapefile,但我想使其更具交互性

points<-readOGR("Points_crops.shp") 
fields<-readOGR("Boundaries.shp")
fields_sub <- fields[!is.na(sp::over(fields, sp::geometry(points))), ]
NDVI_mean<-lapply(NDVI, FUN=function (NDVI) {data.frame(mean=extract(NDVI,fields_sub,fun=mean))})

对于那些感兴趣的人,我已经使用 click 函数解决了这个问题。这将检索您用鼠标单击的点的坐标。之后,您可以将它们转换为 spatialPoints 设置 proj4string(与参考光栅之一相同)。

  points<-click(NDVI[[4]], n=5, xy=TRUE, show=TRUE)
  points$value<-NULL
  points<-SpatialPoints(points, proj4string = crs(S2_stack_crop[[2]]))

一旦我有了spatialPoints的分数,我就可以继续下一步