我试图为使用spplot()函数绘制的绘图添加点。 我已经阅读了这个链接,但我还没有解决。
Overplotting two SpatialPolygonsDataFrames with spplot
plotting SpatialPointsDataFrame over a SpatialPolygonsDataFrame
http://www.r-bloggers.com/label-placement-with-spplot-and-lattice/
我将kriging的结果存储在名为" k.o"的变量中,我想创建一个带有克里金获得的预测的地图,并添加采取措施的点。 那是我的代码:
stations<-list('sp.points', zone, cex= 1, pch=19, col='black')
prediction_plot<-spplot(k.o["var1.pred"], col.regions=terrain.colors(20), cuts=19, auto.key=list(draw=TRUE),
asp='iso', colorkey=TRUE, main='Mean temperature prediction: january', sub='Lombardy',
scales=list(draw=TRUE), sp.layout=list(stations))
print(prediction_plot)
使用这段代码,编译器没有给我任何错误,但是我没有看到过分的点(即我只看到克里金预测)。
我也尝试使用points(),没有结果(但我不确定我可以使用带有spplot()的points()):
prediction_plot<-spplot(k.o["var1.pred"], col.regions=terrain.colors(20), cuts=19, auto.key=list(draw=TRUE),
asp='iso', colorkey=TRUE, main='Mean temperature prediction: january', sub='Lombardy',
scales=list(draw=TRUE))
points(zone$long, zone$lat, type='p', cex=0.5, col=2)
print(prediction_plot)
对不起,我忘记了:&#39;区&#39;是Formal Class SpatialPointsDataFrame。
希望这个问题足够明确,
提前致谢
编辑:我认为它是rst在它绘制克里奇的情节,所以我尝试选择&#34;首先&#34; sp.layout。
stations<-list('sp.points', zone, cex= 0.5, pch=19, col='black')
prediction_plot<-spplot(k.o['var1.pred'], col.regions=terrain.colors(20), cuts=19, auto.key=list(draw=TRUE),
asp='iso', colorkey=TRUE,
scales=list(draw=TRUE), sp.layout=list(stations, first=FALSE))
print(prediction_plot)
现在它绘制了我的观点,但不是krige预测,并且在绘图上,更进一步的点,它打印出一条错误消息:&#34;使用数据包1时出错。$运算符对原子向量无效&# 34 ;. 我搜索并发现,为了避免这样的错误,有必要使用[]而不是$,但我已经在使用它们了,ko [&#39; var1.pred&#39;] ...
有什么建议吗?谢谢!
答案 0 :(得分:1)
这是spplot
中的错误,将在sp
版本1.0-18出现时更正(现在已在svn中更正,在r-forge上)。通常,kriged结果是网格化的(SpatialPixelsDataFrame
或SpatialPointsDataFrame
)而不是SpatialPointsDataFrame
,对于网格化数据,您不会看到此问题。