在R中绘制具有较大栅格的散点图?

问题描述 投票:1回答:1

我在中有两个

library(raster)
library(sp)
library(rgdal)
library(maptools)
library(sf)
library(dplyr)
library(devtools)
library(DGVMTools)
library(Metrics)
library(hydroGOF)
library(sp)
library(grid)
library(latticeExtra)

> Y
class      : RasterLayer 
dimensions : 2803, 5303, 14864309  (nrow, ncol, ncell)
resolution : 0.008333333, 0.008333333  (x, y)
extent     : 60.85, 105.0417, 15.95833, 39.31667  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
source     : memory
names      : layer 
values     : 0, 26.53035  (min, max)

> X
class      : RasterLayer 
dimensions : 2803, 5303, 14864309  (nrow, ncol, ncell)
resolution : 0.008333333, 0.008333333  (x, y)
extent     : 60.85, 105.0417, 15.95833, 39.31667  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
source     : memory
names      : VegH
values     : 0, 17.99169  (min, max)

我正在绘制这两个栅格之间的plot(x,Y)

Scatterplot 1

但是由于像素太多,会出现警告:

警告消息:在.local(x,y,...)中:绘图使用的样本为0.7%的细胞。您可以使用“最大像素”来增加样本)

将两个栅格都转换为并绘制了后,散点图出现大约需要1个小时,并且它显示出很大的黑色块]enter image description here可复制的栅格:

r1 <- r2 <- raster(nrows=2803, ncols=5303)
    values(r1) <- runif(ncell(r1))
    values(r2) <- runif(ncell(r2))

我的问题是如何有效地在两个可以通过肉眼诊断的大型栅格数据集之间绘制散点图?

r raster scatter-plot tiff
1个回答
0
投票

具有如此多的单元格,如果您只是想检查散点图,应该采用样品的方法?您可以使用“ maxpixels”来增加样本(如您得到的警告消息所示)。例如:

X <- Y <- raster(nrows=2803, ncols=5303)
values(X) <- 10 * runif(ncell(X))
values(Y) <- values(X) * (runif(ncell(Y)) - 0.5)

plot(X, Y, maxpixels=1e5)

但是,确实需要一段时间。

也许这是一种更好的方法,它虽然需要一段时间,但可以更好地解释

plot(X, Y, maxpixels=1e5, gridded=TRUE)
© www.soinside.com 2019 - 2024. All rights reserved.