R2-第九期-地图绘图

微思微丝 2017-12-27 15:10:35 阅读: 1860

R语言之ggplot2画地图

1.介绍地图的相关包:

1)地图基础包:maps, mapdata----基于两个包的数据较老,中国地图缺少重庆市,故本次作业不适用该包。

2)作业绘图包:maptools

  maptools包提供了多个函数用来对R当中的空间对象进行读、写、转换或者其他的处理。用来读shapefile的通用函数是readShapeSpatial,这个函数可以自动识别shapefile(或其他R对象)中是否包含点、线或面,然后对特殊的类型采用专门的函数把数据读入。这些专门的函数包括readShapePoints,readShapeLines,readShapePoly等,用来分别读点、线、面。这样做的好处是当你搞错类型时,它会报错。和rgdal包的对应方法不同的是,maptools的函数并不读入投影信息,而是留给你手工处理(如果需要的话)。

  library(maptools)
  china_map<-readShapePoly("bou2_4p.shp") 
  plot(china_map, axes=TRUE, border="gray")
 
使用sp包看一下这个china_map的属性


> class(china_map)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

2.GIS数据

Esri shapefile是一种常见的地图数据。Shapefile 文件是一种空间数据格式,该文件是美国环境系统研究所ESRI所研制的GIS系统格式文件,用来储存基于向量的地理数据(如点,线,面)。这次所用的数据即为GIS数据。

在绘制地图时,每一个省市自治区或者岛屿都是用一个多边形来表示的。 GIS 数据,其实就是提供了每一个行政区其多边形逐点的坐标,然后 R 软件通过顺次连接这些坐标,就绘制出了一个多边形区域。在上面的数据中,一共包含了 925 个多边形的信息,之所以有这么多是因为一些省份有很多小的附属岛屿。在这 925 个多边形中,每一个都对应一个唯一的 ID,编号分别从 1 925

在参考的“数据小铺”中有提供数据来源,这里已下载,可直接使用。下载的是中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf,bou2_4p.shp,bou2_4p.shx)。该数据绘中国地图包含重庆市。

library(maptools)

china_map<-readShapePoly("bou2_4p.shp")

china_map@data

china_map@data是个数据框,925行,7列。第12列为区域面积和周长,第7列为省的名字。

RRstudio的默认工作目录(工作空间)是“文档”或“documents”,直接将下载的包放这里,可直接在R中写代码,调用数据。如果下载到自己设定的工作目录,就需要在RRstudio中设定好以该文件存放的文件夹为工作目录。

3.绘图要求

1)熟悉geom_polygon()geom_path()fortify()这三个函数的用法,意义。

2)创建一个空白主题,并调用。可根据前期作业来设置。

3) 学会设置颜色。

任务1:根据提供的数据,来绘制自己所在省份的地图:

要求:使用空白主题,标题为“R2-代号-省份-城市”。颜色自选。

                                             

R2-03-20.png

任务2

将任务1中调用的地图数据与csv文件R2-9的数据合并,画出人口信息与行政区域结合图。可参考“数据小铺”的文章。

要求:调用空白主题,标题为“R2-代号”,调用表格中的数据,并且根据设置颜色(低为“白色”,高为“红色”),区域边框为绿色。

R2-09-3.png

参考:

1.数据小站的网址:https://site.douban.com/182577/

2.R语言数据可视化手册1

3.中国各主要大城市的经纬度

http://www.360doc.com/content/15/0512/22/13253171_470036622.shtml

4.http://blog.csdn.net/wendaomudong_l2d4/article/details/71403538

写在后面:此次作业提供的链接中有相关的代码,可自行学习并熟悉相关代码,按要求作图。如果学有余力,可学习其他包作图,但不可替换其中任务图。综上,此次作业较为简单,只是地图绘图的入门,知乎专栏小魔方杜雨写了很多地图绘图的文章,感兴趣的同学可自行学习。完成地图绘图任务的小组的成员为:R2-03、R2-07、R2-40.


 

 

 

 
邀请讨论

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
{{item.nick_name}} 受邀请回答 {{item.create_time}}
{{item.refer_comment.nick_name}} {{item.refer_comment.create_time}}

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
切换到完整回复 发送回复
赞({{item.count_zan}}) 踩({{item.count_cai}}) 删除 回复 关闭
科研狗©2015-2025 科研好助手,京ICP备20005780号-1 建议意见

服务热线

178 0020 3020

微信服务号