如果我使用plot()绘制GIS栅格图像,然后使用points()在图像上添加一些点:以下代码
in_rast_str <- "PET_eclp.tif"
in_rast <- raster(in_rast_str)
selected_cells <- choose_points(in_rast_str,10,30)
plot(in_rast)
points(selected_cells[,1],selected_cells[,2])
初始输出渲染正确。但是,如果我随后在导出窗口或 RStudio 的缩放窗口中调整绘图的大小,则这些点和底层光栅会相对于彼此移动并变得不对齐。
这是 RStudio 还是 R 的问题? 我猜这可能是一个错误,而不是我做了一些明显错误的事情。
更新...
以下是一些示例:
和相同的情节,但调整了大小
最佳答案
raster
的问题多年来一直困扰着我。
这并不能完全回答你的问题,但是rasterVis
提供了一个非常令人愉快的(无论如何对我来说)解决方法。
library(rasterVis)
r <- raster(matrix(runif(100), 10))
xy <- xyFromCell(r, which(values(r) > 0.9))
levelplot(r, margin=FALSE) + layer(sp.points(xy, pch=20, cex=2, col=1))
根据需要调整大小和缩放 - 点将粘在正确的单元格上。
关于调整绘图输出大小会导致栅格和点变得不对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28371270/