服务热线
178 0020 3020
setwd("F:\\Doctor\\R语言学习\\互助小组\\第9期作业")
#设置主题
mytheme_map <- theme(panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank())
#安装并加载包
install.packages("rgdal")
library(maptools)
library(rgdal)
library(plyr)
library(ggplot2)
#读取地图数据并根据省份形成数据框
china_map<-readShapePoly("bou2_4p.shp")
china_map = readOGR(dsn = "bou2_4p.shp",stringsAsFactors=FALSE)#读取中国地图空间数据
x <- china_map@data #读取行政信息
xs <- data.frame(x,id=seq(0:924)-1) #含岛屿共925个形状
china_map1 <- fortify(china_map) #转化为数据框
china_map_data <- join(china_map1, xs, type = "full")
#绘制Figure 9.1
sichuan_map_data <- subset(china_map_data,NAME=="四川省")
sichuan_city <- read.csv("sichuan_city.csv") #数据来源于作业给的经纬度网址
chengdu <- subset(sichuan_city,city=="成都")
suining <- subset(sichuan_city,city=="遂宁")
midpos <- function(x) mean(range(x,na.rm=TRUE)) #取形状内的平均坐标
centres <- ddply(sichuan_map_data,.(NAME),colwise(midpos,.(long,lat)))#中心位置经纬度
ggplot(sichuan_map_data,aes(x=long,y=lat)) +
geom_polygon(fill="white",colour="black") +
coord_map("polyconic")+ #指定投影方式为polyconic,获得常见视角中国地图
geom_polygon(fill="firebrick3")+
geom_point(aes(x = jd,y = wd), data =chengdu,size=4,color="gold")+
geom_text(aes(x = jd,y = wd+0.3,label = city), data =chengdu,size=5)+
geom_point(aes(x = jd,y = wd), data =suining,size=2,color="sandybrown")+
geom_text(aes(x = jd,y = wd+0.2,label = city), data =suining,size=3)+
geom_text(aes(label=NAME),data=centres,size=8,color="white") +
ggtitle("R2-20-四川-遂宁")+
mytheme_map
#绘制Figure 9.2
mydata <- read.csv("R2-9.csv")
mydata <- as.data.frame(mydata)
china_data <- join( mydata, china_map_data,type="full")
ggplot(china_data, aes(x = long, y = lat, group = group, fill = pop)) +
geom_polygon(colour="green") +
scale_fill_gradient(low="white",high="red") +
coord_map("polyconic") +
ggtitle("R2-20")+
mytheme_map

附件