r - 如何在 R 中为不同的 spplots 使用相同的颜色间隔

标签 r

我已经插入了不同日期的温度数据图,例如:

2 interpolated maps(left: January, right: July

我想并排显示不同日子的 map ,但希望两者在传奇中具有相同的颜色渐变和间隔。
最高温度值为:29.8
分钟:-13.4

我确实尝试使用来自 How to use the same color scale for points in different maps in R? 的答案但我这样做确实得到了一个错误:

maxim <- 30
minim <- -14
cuts <- 2*(-7:15)
p1 <- spplot(idw_ger, "var1.pred", main="IDW January, 10", cuts=cuts, col.regions=bpy.colors(30)) +
latticeExtra::layer(sp.polygons(ger, fill = NA, col = 'blue')) +
latticeExtra::layer(sp.points(tdata,
                            fill = NA, col = 'black'))

seq.default(zrng 1, zrng[2], length.out = cut + 2) 中的错误:
长度必须是非负数
另外: 警告信息:
在 seq.default(zrng 1 , zrng[2], length.out = cut + 2) 中:
'length.out' 参数使用的第一个元素

我做错了什么,我怎样才能让它发挥作用?

最佳答案

鉴于精确cuts只能为 SpatialPointsDataFrame 指定,我认为您需要为 spplot 使用替代方法.这是一个使用 image 的示例和 image.plot用于图例(改编自 https://stat.ethz.ch/pipermail/r-sig-geo/2007-June/002143.html )。通过设置数据的上限和下限 ( zlim ),您可以创建两个相同的色带。只需更换 zinc.idwcopper.idw使用您自己的数据。

加载数据:

library(sp)
library(gstat)
library(fields)
data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
coordinates(meuse.grid) = ~x+y
gridded(meuse.grid) = TRUE

创建两个 IDW 网格:
zinc.idw = krige(zinc~1, meuse, meuse.grid)
copper.idw = krige(copper~1, meuse, meuse.grid)

设置情节:
par(mfrow=c(1,2),oma=c(2,2,2,2))
cols = bpy.colors(30)
zmin = 0
zmax = 1000

绘制 map 和测量位置:
image(zinc.idw, zlim=c(zmin,zmax),col=cols)
box()
mtext(side=3,text='zinc')
points(meuse, pch = 3)

添加图例:
image.plot( zlim=c(zmin,zmax), nlevel=5,legend.only=TRUE, horizontal=F, col=cols)

其他铜网同理;
image(copper.idw, zlim=c(zmin,zmax),col=cols)
box()
mtext(side=3,text='copper')
points(meuse, pch = 3)
image.plot( zlim=c(zmin,zmax), nlevel=5,legend.only=TRUE, horizontal=F, col=cols)

关于r - 如何在 R 中为不同的 spplots 使用相同的颜色间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351370/

相关文章:

r - 多组密度图

r - 如何打造临床环境洁净?

r - 为什么 x[NA] 会产生与 x 长度相同的 NA 向量?

r - Dplyr 或 data.table 根据另一列中的值合并分组数据中的连续行

r - 将日期格式化为年/季度

r - 在多个页面上绘图

macos - Rcpp:Mac 显示加载轮并几乎卡住

r - ggadjustedcurves 错误 : Must use a vector in '[' , 不是类矩阵的对象

r - 如何在函数中使用 char 变量来过滤 data.table 中的列?

r - 在转换矩阵上运行随机游走比 igraph::random_walk() 更有效