前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言绘制地图热图

R语言绘制地图热图

作者头像
一粒沙
发布2019-07-31 15:38:07
6K1
发布2019-07-31 15:38:07
举报
文章被收录于专栏:R语言交流中心R语言交流中心
想到热图我们往往联想到生物信息学,其实在其他行业也存在热图。今天我们就介绍一下在地域分布热图,下面我们以中国地图的热图为例。

首先我们需要下载相对应的地图包:

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()

)

运行结果如下:

总结:基本的绘制过程如以上的情况。如果你想让你的热图更加美丽,你要做的就是有一个专业的审美,精准的配色。

欢迎大家学习交流

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档