首先我们需要下载相对应的地图包:
1. https://www.cnblogs.com/lonelyxmas/p/5722260.html
2. http://www.cehui8.com/3S/GIS/20130702/205.html
在地图包中包含了以下相关的地图数据:
No. | 数据库名称 | 数据库类型 | 负责单位 |
---|---|---|---|
1 | 1:1000万数字地理底图公路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
2 | 1:1000万数字地理底图境界要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
3 | 1:1000万数字地理底图居民地数据集 | 地理底图-中国 | 国家基础地理信息中心 |
4 | 1:1000万数字地理底图山峰数据集 | 地理底图-中国 | 国家基础地理信息中心 |
5 | 1:1000万数字地理底图水系数据集 | 地理底图-中国 | 国家基础地理信息中心 |
6 | 1:1000万数字地理底图铁路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
7 | 1:1000万数字地理底图文化要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
8 | 1:1500万数字地理底图公路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
9 | 1:1500万数字地理底图境界要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
10 | 1:1500万数字地理底图居民地数据集 | 地理底图-中国 | 国家基础地理信息中心 |
11 | 1:1500万数字地理底图山峰数据集 | 地理底图-中国 | 国家基础地理信息中心 |
12 | 1:1500万数字地理底图水系数据集 | 地理底图-中国 | 国家基础地理信息中心 |
13 | 1:1500万数字地理底图铁路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
14 | 1:1500万数字地理底图文化要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
15 | 1:2000万数字地理底图公路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
16 | 1:2000万数字地理底图境界要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
17 | 1:2000万数字地理底图居民地数据集 | 地理底图-中国 | 国家基础地理信息中心 |
18 | 1:2000万数字地理底图山峰数据集 | 地理底图-中国 | 国家基础地理信息中心 |
19 | 1:2000万数字地理底图水系数据集 | 地理底图-中国 | 国家基础地理信息中心 |
20 | 1:2000万数字地理底图铁路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
21 | 1:2000万数字地理底图文化要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
22 | 1:2500万数字地理底图公路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
23 | 1:2500万数字地理底图境界要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
24 | 1:2500万数字地理底图居民地数据集 | 地理底图-中国 | 国家基础地理信息中心 |
25 | 1:2500万数字地理底图山峰数据集 | 地理底图-中国 | 国家基础地理信息中心 |
26 | 1:2500万数字地理底图水系数据集 | 地理底图-中国 | 国家基础地理信息中心 |
27 | 1:2500万数字地理底图铁路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
28 | 1:3000万数字地理底图公路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
29 | 1:3000万数字地理底图境界要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
30 | 1:3000万数字地理底图居民地数据集 | 地理底图-中国 | 国家基础地理信息中心 |
31 | 1:3000万数字地理底图山峰数据集 | 地理底图-中国 | 国家基础地理信息中心 |
32 | 1:3000万数字地理底图水系数据集 | 地理底图-中国 | 国家基础地理信息中心 |
33 | 1:3000万数字地理底图铁路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
34 | 1:3000万栅格地图-中国道路图 | 电子栅格地图 | 国家基础地理信息中心 |
35 | 1:3000万栅格地图-中国地形 | 电子栅格地图 | 国家基础地理信息中心 |
36 | 1:3000万栅格地图-中国水系图 | 电子栅格地图 | 国家基础地理信息中心 |
37 | 1:3000万栅格地图-中国政区 | 电子栅格地图 | 国家基础地理信息中心 |
38 | 1:400万地级行政界线 | 基础地理数据 | 国家基础地理信息中心 |
39 | 1:400万地市级以上居民地 | 基础地理数据 | 国家基础地理信息中心 |
40 | 1:400万国界 | 基础地理数据 | 国家基础地理信息中心 |
41 | 1:400万国界与省界 | 基础地理数据 | 国家基础地理信息中心 |
42 | 1:400万三级以上河流 | 基础地理数据 | 国家基础地理信息中心 |
43 | 1:400万首都和省级行政中心 | 基础地理数据 | 国家基础地理信息中心 |
44 | 1:400万四级河流 | 基础地理数据 | 国家基础地理信息中心 |
45 | 1:400万五级河流 | 基础地理数据 | 国家基础地理信息中心 |
46 | 1:400万县级居民地 | 基础地理数据 | 国家基础地理信息中心 |
47 | 1:400万县级行政界线 | 基础地理数据 | 国家基础地理信息中心 |
48 | 1:400万一级河流 | 基础地理数据 | 国家基础地理信息中心 |
49 | 1:400万主要公路 | 基础地理数据 | 国家基础地理信息中心 |
50 | 1:400万主要铁路 | 基础地理数据 | 国家基础地理信息中心 |
51 | 1:500万数字地理底图公路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
52 | 1:500万数字地理底图境界要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
53 | 1:500万数字地理底图居民地数据集 | 地理底图-中国 | 国家基础地理信息中心 |
54 | 1:500万数字地理底图山峰数据集 | 地理底图-中国 | 国家基础地理信息中心 |
55 | 1:500万数字地理底图水系数据集 | 地理底图-中国 | 国家基础地理信息中心 |
56 | 1:500万数字地理底图铁路数据集 | 地理底图-中国 | 国家基础地理信息中心 |
57 | 1:500万数字地理底图文化要素数据集 | 地理底图-中国 | 国家基础地理信息中心 |
58 | 七十年代1:100万地形图 | 近代、当代地图数据 | 国家基础地理信息中心 |
59 | 五十年代1:100万地形图 | 近代、当代地图数据 | 国家基础地理信息中心 |
我们今天利用R语言基于各省边界地图数据进行热图的绘制:
1. 热图所需要的R包:”mapdata”, “maptools”,“ggplot2”, “plyr”, “mapproj”, “sp”, “maps”。
2. 接下来我们看下地图的轮廓图:
代码:
library(mapdata)
library(maptools)
library(ggplot2)
library(plyr)
library(mapproj)
library(sp)
library(maps)
####画中国地图
china_map=readShapePoly("F:/map/bou2_4p.shp")
plot(china_map)
ggplot(china_map,aes(x=long,y=lat,group=group))+
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)
)
结果展示:
3. 既然我们要画热图,那么少不了通过分布颜色的深浅体现分布情况。接下来我们将我们的分布比例作为一个CSV文件导入R语言,文件结构如下:
代码如下:
x<-china_map@data ###读取行政信息
xs<-data.frame(x,id=seq(0:924)-1)
china_map1<-fortify(china_map)###转化为数据框
china_map_data<-join(china_map1,xs,type="full")#基于id进行连接合并
#unique(china_map@data$NAME)#查看地图数据中保存的地域名称,编辑自己的数据与其一致
mydata<-read.csv("F:/map/map.csv",header=T,as.is=T)
colnames(mydata)=c('NAME',"ratio")
china_data <- join(china_map_data,mydata, type="full")#基于NAME字段进行连接,NAME字段来自于地图文件中
ggplot(china_data,aes(x=long,y=lat,group=group,fill=ratio))+
geom_polygon(colour="grey60")+
scale_fill_gradient(low ="white", high ="red")+
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)
)##参数“ratio”为我们要展现的数据指标,基于该指标绘制热力图
绘制结果:
4. 热图已经绘制好,可是呢,似乎少了点什么。对的,每个省的名字并没有显示。那么我们需要将各省的坐标及名字导入R语言,数据结构如下:
最后就是整合后的的代码了:
province_city<-read.csv("F:/map/lat.csv",header=T,as.is=T)#获取省会城市坐标
ggplot(china_data,aes(long,lat))+
geom_polygon(aes(group=group,fill=ratio),colour="grey",size=0.01)+
scale_fill_gradient(low="white",high="red")+
coord_map("polyconic")+
geom_text(aes(x=jd,y=wd,label=NAME),data=province_city,colour="black",size=2.5)+
theme(
panel.grid=element_blank(),
panel.background=element_blank(),
axis.text=element_blank(),
axis.ticks=element_blank(),
axis.title=element_blank()
)
运行结果如下:
总结:基本的绘制过程如以上的情况。如果你想让你的热图更加美丽,你要做的就是有一个专业的审美,精准的配色。
欢迎大家学习交流