写在前面
参考https://blog.csdn.net/fanfanrenrenmi/article/details/52565429
https://my.oschina.net/u/2306127/blog/473842](https://my.oschina.net/u/2306127/blog/473842
这两篇文章中已经写的很详细,那就开始比着做吧
虽然之前很少用R做过地图
所用数据
https://pan.baidu.com/s/1jIicFHk](https://pan.baidu.com/s/1jIicFHk
先来安装一些的包
install.packages("mapdata")
install.packages("maptools")
install.packages("colorspace")
install.packages("ggplot2")
install.packages("mapproj")
install.packages("Cairo")
install.packages("scales")
install.packages("RColorBrewer")
library(Cairo)
#利用cairo_pdf输出中文字体
library(mapdata)
library(maptools)
library(ggplot2)
library(plyr)
library(scales)
library(colorspace)
画个好看的中国地图,使用ggplot调整到平面图,调整投影方式后,图像如下,可以不要theme部分,自己查看效果,会有经纬线等信息。
geom_polygon(fill="white",colour="black")+
coord_map("polyconic")+
theme( panel.grid=element_blank(),
panel.background=element_blank(),
axis.text=element_blank(),
axis.ticks=element_blank(),
axis.title=element_blank(),
legend.position=c(0.2,0.3)
)
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")#基于id进行连接
a=data.frame(unique(china_map@data$NAME))
mydata<-read.csv("geo_data/geo_data/data_dt1.csv",header=T,as.is=T)
china_data <- join(china_map_data, mydata, type="full")#基于NAME字段进行连接,NAME字段来自于地图文件中
ggplot(china_data,aes(x=long,y=lat,group=group,fill=yeild))+
geom_polygon(colour="grey40")+ #边界颜色
scale_fill_gradient2()+ #填充方式,这里是2色渐变填充
coord_map("polyconic")+
theme(
panel.grid=element_blank(),
panel.background=element_blank(),
axis.text=element_blank(),
axis.ticks=element_blank(),
axis.title=element_blank(),
legend.position=c(0.2,0.3)
)##参数“yeild”为我们要展现的数据指标,基于该指标绘制热力图
province_city<-read.csv("geo_data/geo_data/province1.csv",header=T,as.is=T)
#通过百度地图获取每个省的中心坐标,作为标签位置
Po=ggplot(china_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=yeild),colour="grey",size=0.01)+
scale_fill_gradient2(low = ("#A5FECB"), mid="#20BDFF",
high = ("#5433FF"),midpoint = 500000,na.value = "white")+
#可以更改参数scale_fill_gradient2为两个颜色的渐变色,可以使用RGB颜色
coord_map("polyconic")+
geom_text(aes(x=jd,y=wd,label=name),data=province_city,colour="black",size=2)+ #添加标签
theme (
panel.grid=element_blank(),
panel.background=element_blank(),
axis.text=element_blank(),
axis.ticks=element_blank(),
axis.title=element_blank()
)
#export as tiff width=3000 mentain
plot(Po)
ggsave(plot = Po, file = "Po_blue.pdf", device = cairo_pdf, family = "Song")
#利用cairo_pdf输出中文字体
install.packages("export")
library(export)
graph2svg(file="effect plot.svg", width=21, height=15)
#可以导出ppt再进行作图,但是没有AI强大