1

我想绘制存储在 SpatialPixelsDataFrame 对象中的克里金结果。使用 spplot,它会自动创建一个包含 var1.pred、var1.var 和 var1.stdev 的图。

这很好,但我希望 spplot 函数只绘制 var1.pred,这就是为什么我要删除 var1.var 和 var1.stdev(它们作为属性存储在插槽 @data 中)。

我不知道该怎么做 - 有人可以帮忙吗?提前致谢!

假设我的对象被称为“aa”,那么这里是关于它的信息:

str(aa)
Formal class 'SpatialPixelsDataFrame' [package "sp"] with 7 slots
 ..@ data       :'data.frame':  4986 obs. of  3 variables:
 .. ..$ var1.pred : num [1:4986] 5.95 5.96 5.96 5.94 5.95 ...
 .. ..$ var1.var  : num [1:4986] 0.000445 0.0005 0.00072 0.008354 0.000917 ...
 .. ..$ var1.stdev: num [1:4986] 0.0211 0.0224 0.0268 0.0914 0.0303 ...
 ..@ coords.nrs : int [1:2] 1 2
 ..@ grid       :Formal class 'GridTopology' [package "sp"] with 3 slots
 .. .. ..@ cellcentre.offset: Named num [1:2] 0.139 0.408
 .. .. .. ..- attr(*, "names")= chr [1:2] "x1" "x2"
 .. .. ..@ cellsize         : Named num [1:2] 0.174 0.174
 .. .. .. ..- attr(*, "names")= chr [1:2] "x1" "x2"
 .. .. ..@ cells.dim        : Named int [1:2] 56 154
 .. .. .. ..- attr(*, "names")= chr [1:2] "x1" "x2"
 ..@ grid.index : int [1:4986] 8604 8548 8492 8435 8436 8379 8380 8323 8324 8325 ...
 ..@ coords     : num [1:4986, 1:2] 6.22 6.22 6.22 6.05 6.22 ...
 .. ..- attr(*, "dimnames")=List of 2
 .. .. ..$ : NULL
 .. .. ..$ : chr [1:2] "x1" "x2"
 ..@ bbox       : num [1:2, 1:2] 0.139 0.408 9.697 26.994
 .. ..- attr(*, "dimnames")=List of 2
 .. .. ..$ : chr [1:2] "x1" "x2"
 .. .. ..$ : chr [1:2] "min" "max"
 ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
 .. .. ..@ projargs: chr NA
4

3 回答 3

1

请下次提供可复制的示例,无需在此处删除某些内容。

spplot你的帮助文件中

  spplot.grid(obj, zcol = names(obj), ..., names.attr, scales = list(draw = FALSE),
  xlab = NULL, ylab = NULL, aspect = mapasp(obj,xlim,ylim),
  panel = panel.gridplot, sp.layout = NULL, formula, xlim = bbox(obj)[1, ],
  ylim = bbox(obj)[2, ], checkEmptyRC = TRUE)

....................................................................
....................................................................
....................................................................

 obj: object of class extending Spatial-class

zcol: character; attribute name(s) or column number(s) in attribute
      table
....................................................................
....................................................................
....................................................................

当你卡在 R 中时,首先要尝试的是帮助文件。在这里,您可能已经看到zcol参数可以解决您的问题。

使用meuse.grid有 5 列的数据集,我们可以决定像这样绘制“土壤”列

require(sp)
data(meuse.grid) 
coordinates(meuse.grid) = c("x", "y") 
gridded(meuse.grid) <- TRUE

class(meuse.grid)
[1] "SpatialPixelsDataFrame"
attr(,"package")
[1] "sp"

names(meuse.grid)
[1] "part.a" "part.b" "dist"   "soil"   "ffreq" 

spplot(meuse.grid, "soil")

这个也可以

spplot(meuse.grid["soil"])
于 2013-07-13T13:32:36.783 回答
0

a@data 是一个 data.frame,因此您可以像操作数据框一样操作它:

a@data<-a@data[,1,drop=FALSE]

drop=FALSE 参数使 [] 不会尝试将结果降低到最小维度。

于 2013-10-10T01:19:57.400 回答
0

指定绘图名称:

split(dataset["vari.pred"])
于 2016-03-27T10:02:10.480 回答