library(mapdata)
library(maptools)
library(ggplot2)
library(plyr)
library(mapproj)
library(sp)
library(maps)
china_map<-readShapePoly("D:/Beautiful-Visualization-with-R-master/map/bou2_4p.shp")
plot(china_map) #直接画出来的话地图是扁平的,默认吧进度和纬度作为普通数据,均匀平等对待,绘制在笛卡尔坐标系中。
#因此需要用稿ggplot2提供的coord_map()映射转换坐标系
#bou2表示我们读取的是省级地图,1表示国家层面,数值也大划分越细
ggplot(data=fortify(china_map))+
geom_polygon(aes(x = long, y = lat, group = id), colour = "black", fill = NA) +
theme_grey()+
coord_map()
names(china_map)
#可以发现china_map中有925条记录,每条记录中含有面积(AREA)、周长(PERIMETER)、各种编号、中文名(NAME)等字段。其中中文名(NAME)字段是以GBK编码的。
t<-table(iconv(china_map$NAME, from = "GBK"))
t1<-as.matrix(t)
#统计每一个省份或直辖市多边形的数目
city<- as.vector(china_map$ADCODE99)
city_name <- as.vector(china_map$NAME)
city_name_code<-unique(cbind(city,city_name))
#构造一个name和code对应的表,这样就可以将中文的city名称和编号对应起来
#例如提取上海的地图
Shanghai<-china_map[china_map$ADCODE99==310000,]
ggplot(data = fortify(Shanghai)) +
geom_polygon(aes(x = long, y = lat, group = id), colour = "black",
fill = NA) +
theme_grey()
#绘制整个中国地图
x<-china_map@data #读取行政信息,x为dataframe,一共925行
x$id<-seq(0:924)-1
china_map1<-fortify(china_map)
#将china_map转换为数据框,该数据有91040行,其中有一列为id,这里id雨哦们还是那个面构建xs的id一致,即每一个id代表的区域在china_map1中被展开
#china_map1以long,lat即经纬度标识
#这是ggplot专门提供的函数用于SpatialPolygonsDataFrame转换为dataframe
china_map_data<-join(china_map1,x,by="id",type="full") #这里type一定要为full
mycolor<-china_map_data$NAME
mycolor<-unique(mycolor)
r<-runif(length(mycolor)) #随机配色
color_data<-data.frame(NAME=mycolor,ration=r)
china_data<-join(china_map_data,color_data,by="NAME",type="full")
ggplot(china_data,aes(x=long,y=lat,group=id,fill=ration))+
geom_polygon(colour="grey60")+
scale_fill_gradient(low="white",high="red")+
coord_map("polyconic")+
theme(
panel.grid=element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks=element_blank(),
axis.title = element_blank()
)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有