r - 在R中两个栅格之间的散点图中绘制回归线和r2?
问题描述
我有rasters
两个r
> lpjENLF
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 : VegC
values : 0, 17.99169 (min, max)
> geocarbon2
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)
我通过以下方式在它们之间制作散点图:
plot(lpjENLF, geocarbon2,maxpixels=900000)
我通过以下方式找出相关性:
> cor(values(geocarbon2), values(lpjENLF), use="complete.obs", method = 'pearson')
[1] 0.6883869
如何在散点图上绘制回归线和 pearson r2 系数?
解决方案
要在散点图上绘制回归线和 Pearson r2 系数,可以使用以下代码
#Create 2 rasters
library(raster)
ras1 <- raster(nrow = 10, ncol = 10)
ras2 <- raster(nrow = 10, ncol = 10)
# Assign random cell values
set.seed(42)
values(ras1) <- runif(ncell(ras1))
values(ras2) <- runif(ncell(ras2))
#Create a data frame from the raster values
df <- cbind.data.frame(values(ras1), values(ras2))
names(df) <- c("ras1", "ras2")
#Plotting
library(ggpubr)
ggscatter(data = df, x = "ras1", y = "ras2",
add = "reg.line") + # Add regressin line
stat_cor(aes(label = paste(..rr.label.., ..p.label.., sep = "~`,`~")),
label.x = 0, label.y = 1.1)
推荐阅读
- python - 在 Python 中的这个数组切片中这个 'a' 的目的是什么( W[: , : , : , a] )?
- php - PHP:如果我将 $_SESSION['userid'] 作为标识符,这是一个安全问题吗?
- android - 为什么工具栏不接受菜单的 showAsAction = "always" 属性
- javascript - 在调用另一个promise之前检查一个promise的结果后如何返回一个promise
- python - 在 python 中保持 Kafka 消费者存活的最佳实践是什么?
- performance - 了解 Intel Xeon PHi 7210 上的矩阵乘法
- r - R中的分组明智的xtabs
- php - 如何在 WooCommerce 中的添加到购物车按钮之前显示全宽表格
- docker - Docker:错误:不可满足的约束
- sql - 在 SQL 中获取最新订单