R语言绘制地图热力图

写在前面

参考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强大

你可能感兴趣的:(R语言绘制地图热力图)