如何在R语言中让shapefile图层显示于栅格数据之上?
问题:Shapefile叠加栅格时显示在图层后方
我想要将名为“havza”的shapefile叠加到名为“gio_ara”的栅格数据上,但绘图时该shapefile始终显示在栅格后方,希望解决让shapefile置于栅格图层前端的问题。
用户提供的代码
# 读取Havza区域数据 havza=readOGR(dsn= "D:\\FIRAT HAVZA", layer= "firat_havza_new") plot(havza) # 读取Aralik PM栅格数据 gio_ara = readGDAL("D:\\FIRAT HAVZA\\Giovanni_PM10\\ara_pm") gio_ara$RASTERVALU = gio_ara$band1 gio_ara$band1 = NULL spplot(gio_ara, col.regions=bpy.colors(), scales=list(draw=T)) spplot(gio_ara, col.regions=bpy.colors(), main="Aralik PM10",scales=list(draw=T), sp.layout=list(havza))
解决方案
问题出在sp.layout的默认绘制顺序:默认情况下,sp.layout中的元素会先于栅格图层绘制,导致被栅格覆盖。只需修改sp.layout的配置,让shapefile在栅格之后绘制即可:
spplot(gio_ara, col.regions=bpy.colors(), main="Aralik PM10", scales=list(draw=T), sp.layout=list(list(x=havza, first=FALSE)))
如果需要让shapefile的边界更醒目,可以额外添加样式参数,比如设置红色粗边框:
spplot(gio_ara, col.regions=bpy.colors(), main="Aralik PM10", scales=list(draw=T), sp.layout=list(list(x=havza, first=FALSE, col="red", lwd=2)))
核心原理:first=FALSE参数强制shapefile在栅格图层绘制完成后再渲染,从而显示在栅格的最前端。
内容的提问来源于stack exchange,提问作者Hande Ozvan
相关产品推荐
相关产品推荐

