R语言制作长三角城市群空间权重矩阵及作图显示

 长三角一体化进入新的发展阶段,下面通过制作最新长三角城市群地图,并运用R语言形成空间权重矩阵,同时画出了空间连接权重矩阵图示。

 

library("raster")
library("spdep")
#p1<- shapefile("E:\new_delta_map\\new_delta_map_2.shp")
p=shapefile("E:\\new_delta_map\\deltacity_2.shp",encoding="UTF-8")
cityname=c('安庆市',	'池州市',	'滁州市',	'宣城市',	'常州市',	'南京市',	
           '南通市',	'苏州市',	'泰州市',	'无锡市',	'盐城市',	'扬州市',	'镇江市',	
           '杭州市',	'湖州市',	'嘉兴市',	'金华市',	'宁波市',	'绍兴市',	'台州市',	'舟山市',	'马鞍山市',	
           '芜湖市',	'合肥市',	'上海市',	'铜陵市')
p$count_name=cityname

latlon=read.csv("E:\\data\\cor.csv")
latlon=as.data.frame(latlon)
xy[,1]=latlon[,2]#换成城市实际座标
xy[,2]=latlon[,3]
###############
wr <- poly2nb(p, row.names=p$ID_1, queen=TRUE)
wr[[18]]=sort(as.integer(c(wr[[18]],21)))
wr[[21]]=sort(as.integer(c(18)))
wm <- nb2mat(wr, style='B', zero.policy = TRUE)
write.csv(wm,"E:\\new_delta_map\\deltacitycluster-1.csv") #相邻矩阵

##############
#Distance based:
wd100 <- dnearneigh(xy, 0, 100, longlat=TRUE)
wmwd100<- nb2mat(wd100, style='B', zero.policy = TRUE)
write.csv(wmwd100,"\\new_delta_map\\deltacitycluster-wd100.csv") #相距离100km矩阵
#Nearest neighbors:
k3 <- knn2nb(knearneigh(xy, k=3, RANN=FALSE))
wmk3<- nb2mat(k3, style='B', zero.policy = TRUE)
write.csv(wmk3,"E:\\new_delta_map\\deltacitycluster-k3.csv") #相邻3个矩阵
plot(p, col='white', border='blue')
plot(wr, xy, col='red', lwd=2, add=TRUE)#作图,以相邻矩阵为连接
text(xy,p$count_name,cex=.7, halo=TRUE, hc="white", col='blue', hw=0.0)#halo是晕圈,设置hw=0则去除晕圈

以100km为门槛建立空间权重矩阵的图示如下:

以相邻与否(wij=1,if adj=1)建立空间权重矩阵的图示如下:

以三个相近邻居(k=3)建立空间权重矩阵的图示如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章