向 spplot 添加文本 [R]
Adding text to spplot [R]
我在 R 中使用一些数据执行了空间插值,但在创建地图时遇到了困难。我必须使用 spplot 来这样做。当我从那里测试代码示例时:
data(meuse)
coordinates(meuse) <- ~x+y
l2 = list("SpatialPolygonsRescale", layout.north.arrow(), offset =
c(181300,329800), scale = 400)
l3 = list("SpatialPolygonsRescale", layout.scale.bar(), offset =
c(180500,329800), scale = 500, fill=c("transparent","black"))
l4 = list("sp.text", c(180500,329900), "0")
l5 = list("sp.text", c(181000,329900), "500 m")
spplot(meuse, c("ffreq"), sp.layout=list(l2,l3,l4,l5),
col.regions= "black", pch=c(1,2,3),
key.space=list(x=0.1,y=.95,corner=c(0,1)))
一切正常。当我将其应用于我的数据集时,出现错误
Error in printFunction(x, ...) :
(list) object cannot be coerced to type 'double'
我的代码是这样的:
l2 = list("SpatialPolygonsRescale", layout.north.arrow(), offset =
c(5400000,500000), scale = 400)
l3 = list("SpatialPolygonsRescale", layout.scale.bar(), offset =
c(5400000,500000), scale = 25000, fill=c("transparent","black"))
l4 = list("sp.text", c(5400000,500000), "0")
l5 = list("sp.text", c(5400000,500000), "25 km")
# Use the ColorBrewer library for color ramps
library(RColorBrewer)
precip.pal <- colorRampPalette(brewer.pal(7, name="Blues"))
# plot the interpolation
spplot(bla.krige, zcol='bla.pred', col.regions=precip.pal,contour=TRUE,
col='black',
pretty=TRUE,
scales=list(draw = TRUE),
labels=TRUE,
layout=list(l2,l3,l4,l5))
知道如何解决这个问题吗?我的数据看起来与 spplot 文档中给出的示例几乎相同。感谢您的任何提示!
我自己找到了解决方案...我有点马虎
- 虽然调用了包
sp
,参数仍然是 sp.layout
,而不仅仅是 layout
(rtfm 问题)。
- 我混淆了空间范围的纬度和经度。所以应该是
c(500000,5400000)
而不是 c(5400000,500000)
.
我在 R 中使用一些数据执行了空间插值,但在创建地图时遇到了困难。我必须使用 spplot 来这样做。当我从那里测试代码示例时:
data(meuse)
coordinates(meuse) <- ~x+y
l2 = list("SpatialPolygonsRescale", layout.north.arrow(), offset =
c(181300,329800), scale = 400)
l3 = list("SpatialPolygonsRescale", layout.scale.bar(), offset =
c(180500,329800), scale = 500, fill=c("transparent","black"))
l4 = list("sp.text", c(180500,329900), "0")
l5 = list("sp.text", c(181000,329900), "500 m")
spplot(meuse, c("ffreq"), sp.layout=list(l2,l3,l4,l5),
col.regions= "black", pch=c(1,2,3),
key.space=list(x=0.1,y=.95,corner=c(0,1)))
一切正常。当我将其应用于我的数据集时,出现错误
Error in printFunction(x, ...) :
(list) object cannot be coerced to type 'double'
我的代码是这样的:
l2 = list("SpatialPolygonsRescale", layout.north.arrow(), offset =
c(5400000,500000), scale = 400)
l3 = list("SpatialPolygonsRescale", layout.scale.bar(), offset =
c(5400000,500000), scale = 25000, fill=c("transparent","black"))
l4 = list("sp.text", c(5400000,500000), "0")
l5 = list("sp.text", c(5400000,500000), "25 km")
# Use the ColorBrewer library for color ramps
library(RColorBrewer)
precip.pal <- colorRampPalette(brewer.pal(7, name="Blues"))
# plot the interpolation
spplot(bla.krige, zcol='bla.pred', col.regions=precip.pal,contour=TRUE,
col='black',
pretty=TRUE,
scales=list(draw = TRUE),
labels=TRUE,
layout=list(l2,l3,l4,l5))
知道如何解决这个问题吗?我的数据看起来与 spplot 文档中给出的示例几乎相同。感谢您的任何提示!
我自己找到了解决方案...我有点马虎
- 虽然调用了包
sp
,参数仍然是sp.layout
,而不仅仅是layout
(rtfm 问题)。 - 我混淆了空间范围的纬度和经度。所以应该是
c(500000,5400000)
而不是c(5400000,500000)
.