1

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))

この問題を解決する方法はありますか? 私のデータは、splot のドキュメントに記載されている例とほぼ同じに見えます。ヒントをありがとう!

4

1 に答える 1

1

私は自分で解決策を見つけました...私は少しずさんでした。

  1. package を呼び出していますspが、引数は(rtfm の問題)sp.layoutだけでなく、まだ です。layout
  2. 空間範囲のために緯度と経度を混同しました。ではc(500000,5400000)なくc(5400000,500000)
于 2015-09-15T09:45:45.950 に答える