library(rgdal) #提供readOGR()函数
library(ggplot2)
library(dplyr)
library(plyr)
library(grid)
library(RColorBrewer)
library(Cairo) #图片高清导出
library(showtext)
p<-choose.files() #导入bou4_4m/BOUNT_poly.shp文件
dataProjected <- readOGR(p)
dataProjected@data$id <- rownames(dataProjected@data)
watershedPoints <- fortify(dataProjected)
df_China4 <- merge(watershedPoints, dataProjected@data, by = "id")
df_China4$province<-substr(as.character(df_China4$ADCODE99),1,2) #提取身份编号
mydata<-data.frame(NAME99=unique(df_China4$NAME99),
value=round(runif(length(unique(df_China4$NAME99)),0,10)))
df_China<-join(df_China4,mydata,type="full") #这里默认by=NAME99
p<-choose.files()
ProCode <- read.csv(p) # ProCode 包含编号和省份全名
ProCode$ID<-as.character(ProCode$ID)
for (i in 1:nrow(ProCode)){
df_China$province<- gsub(pattern = ProCode$ID[i], replacement =ProCode$PcCode[i], x = df_China$province)
} #实现省份中文名字替换id
df_China$province<-factor(df_China$province,levels=as.character(ProCode$PcCode))
#由于南海地区维度跨度太大,会影响部分省份的显示清晰度,所以将这部分不予以绘制显示
#df_China<-df_China[df_China$NAME99!='南沙群岛' &
df_China$NAME99!='西沙群岛' &
df_China$NAME99!='中沙群岛' &
df_China$NAME99!='中沙群岛的岛礁及其海域', ]
cairo_pdf(file="China.pdf",width=8.42,height=7)
showtext_begin()
ggplot(df_China_hubei, aes(x = long, y = lat,group=group,fill=value)) +
geom_polygon(colour="black",size=0.1) +
scale_fill_gradientn(colours=brewer.pal(9,"Spectral")) +
coord_cartesian()+
theme_void()+
theme(strip.background = element_rect(color="grey60",size=0.25),
panel.background = element_rect(fill=NA,color="grey60",size=0.25))
showtext_end()
dev.off()
facet_wrap(~province, ncol = 7,scales="free",strip.position = "top") #在上面代码下加上这一句即可
df_China_hubei<-df_China[df_China$province == '湖北省',] #提取湖北省的数据即可,其他一样
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。