服务热线
178 0020 3020
R语言之ggplot2画地图
任务1:
画自己所在省份的地图,并标记城市。
install.packages("maptools") install.packages("plyr") setwd("E:/PNG/R2/R2-9-地图绘图")##在存放了地图数据的文件夹设置工作目录,便于调用数据。 library(maptools) library(ggplot2) library(plyr) mytheme<-theme( panel.background=element_blank(), panel.grid=element_blank(), axis.text=element_blank(), axis.ticks=element_blank(), axis.title=element_blank(), legend.position = "none") china_map<-readShapePoly("bou2_4p.shp")##载入数据并转换成该函数数据框 x<-china_map@data##经纬度等数据信息 xs<-data.frame(x,id=seq(0:924)-1)##行政区域信息 china_map1<-fortify(china_map)##转换成ggplot2可用的数据框 china_mapdata<-join(china_map1, xs, type = "full") ##合并两组信息 anhui<-subset(china_mapdata,NAME=="安徽省") ggplot(anhui, aes(x = long, y = lat, group = group,fill=NAME))+ geom_polygon(fill="yellow" )+ geom_path(colour = "grey40")+ ggtitle("R2-03-安徽-安庆")+ geom_text(mapping = aes(x=117,y=33,label=NAME),color="red",cex=5)+ geom_point(aes(x=117.17,y=31.52),colour="blue",size=3,pch=19)+ geom_point(aes(x=117.02,y=30.31),colour="blue",size=1.8)+ annotate("text",x=117.3,y=31.3,label="合肥")+ annotate("text",x=117.2,y=30.1,label="安庆")+ coord_map("polyconic")+ ##获得正常视角的地图 mytheme
任务2:
画融合了人口数据的中国地图
library(maptools) library(ggplot2) library(plyr) mytheme<-theme( panel.background=element_blank(), panel.grid=element_blank(), axis.text=element_blank(), axis.ticks=element_blank(), axis.title=element_blank(), legend.position = c(0.9,0.4)) china_map<-readShapePoly("bou2_4p.shp") x<-china_map@data xs<-data.frame(x,id=seq(0:924)-1) china_map1<-fortify(china_map) china_mapdata<-join(china_map1, xs, type = "full") data<-read.csv("E:/PNG/R2/R2-9-地图绘图/R2-9-1.csv") mydata<-as.data.frame(data) pop<-join(china_mapdata, mydata, type = "full") ggplot(pop,aes(x = long, y = lat, group = group,fill=pop))+ geom_polygon()+ coord_map("polyconic") +##获得正常视角的地图 scale_fill_gradient(low="white",high="red")+ geom_path(colour = "green")+ ggtitle("R2-03")+mytheme
附件