简介
spplot()是sp库中的一个函数,主要用于空间信息的可视化。
作者也是第一次接触这个函数,很多问题我也不知道怎么解决,欢迎大佬们移步官方文档:https://rdrr.io/cran/sp/man/spplot.html。
菜鸡作者的使用体验:缺点:不太好上手,不如Arcmap功能全;优点:R语言做统计分析比较方便,直接用R 出图比把结果导出后用arcgis搞方便。
教程目标
将GWR模型结果中的localR2可视化
最终结果
具体步骤
Step1: 从本地读取底图数据(shp文件)
>library(rgdal)
>tianjin <- readOGR(dsn = "/Users/GraduatePaper", layer = "TianjinCounty2")
dsn的值为shp文件存储的文件夹
layer的值为shp文件的文件名。⚠️注意:写文件名的时候不要包含“.shp”
Step2: 设置除出图主题图层外其他图层的格式
在教程中,共涉及4个图层:指南针、比例尺、底图(天津市行政区划)、租房localR2
其中“租房localR2”为主题图层;
底图:
不需要调整(投影已经与主题图层一致),但需要转变成list
>l4=list(tianjin)
指南针:
>l2=list("SpatialPolygonsRescale", layout.north.arrow(), offset = c(116.8,40.0),scale = 0.08)
前两个参数不说了。
offset参数代表了指南针的位置,默认的位置是原点。但是在出图的时候spplot() 的出图范围是只比出图数据的外接矩形大一点点的一个矩形,所以我们要根据出图数据的坐标范围来设置offset的值,否则出的图中看不到指南针。我获取出图数据坐标范围的方法:
>localR2=tjzf.res$SDF$Local_R2
>map.localR2= SpatialPointsDataFrame(data=data.frame(localR2),coords=cbind(tianjinzufang$lon, tianjinzufang$lat))
>summary(map.localR2)
scale参数代表了指南针和默认值的比例,<1就是比默认的尺寸小,>1就是比默认的尺寸大。仍是根据出图数据的坐标范围设置。默认的尺寸如图:
比例尺:
>l3=list("SpatialPolygonsRescale", layout.scale.bar(), offset = c(116.88,40.02),scale = 0.2,fill=c("transparent","black"))
offset和scale的设置与指南针同理。fill参数代表了比例尺的样式。
Step3: 出图
>colours = c("dark green", "green", "yellow", "orange")
>spplot(map.localR2, cuts=quantile(localR2), col.regions=colours, main = "Local_R2 (tjesf)",sp.layout=list(l4,l2,l3))
参数1(map.localR2): 出图主题数据
参数2(cuts):数据如何分段。如果要手动分段,quantile函数改成seq( )
参数3(col.regions): 图例颜色
参数4(main):标题
参数5(sp.layout):除主题图层之外的图层