当前位置: 首页 > article >正文

使用R语言绘制简单地图的教程

今天主要讲的部分是绘制静态地图,使用的R语言绘图包是tmap,关于介绍就不多讲,下面开始代码的讲解,小白也可以放心食用。

1、绘制简单的单幅地图,这里以新西兰地区为例

#导入必要的包
library(tmap)
library(sp)
library(spData)

# 只显示填充
tm_shape(nz) + 
  tm_fill()
# 只显示边界
tm_shape(nz)+
  tm_borders()
# 填充和边界都显示
tm_shape(nz)+
  tm_fill()+
  tm_borders()

通过上面的代码,事实上我们分别可以得到三个不同版本的地图,分别为“只显示填充”(左),“只显示边界”(中),“边界和填充都显示”(右)

传给tm_shape()的对象是nz,这个nz是代表新西兰地区的sf类型的对象,我们可以通过一行简单的代码查看一下nz的属性,如下:

注意:在实际使用中我们通常使直接使用tm_polygons()方法绘制填充和边界。 


tm_shape(nz) + tm_polygons()
# tm_polygons()函数就是把tm_fill() 和 tm_borders()合成了一个

 2、绘制组图或者叫多幅地图

tmap可以提供“tmap”类的对象,我们可以把绘制好的地图暂存在tmap对象中,通过制作多个tmap对象来达到绘制组图的目的。


#map1和map2就是tmap对象
map1 = tm_shape(nz) + tm_polygons(col = "Population")
map2 = tm_shape(nz) + tm_polygons(col = "Median_income")
#绘制组图
tmap_arrange(map1,map2)

这个组图的图例出现了一些问题,是由于图例太窄放不下文字造成的,另外我们还需要添加一些地图要素,如比例尺,指北针等等。可通过下面的代码来完成:


map1 = tm_shape(nz) + tm_polygons(col = "Population") +
  tm_compass(position = c(0.8,0.8))+ 
  tm_layout(legend.width = 2)+
  tm_scale_bar(breaks = c(0,100,200),text.size = 1)
map2 = tm_shape(nz) + tm_polygons(col = "Median_income") +
  tm_compass(position = c(0.8,0.8))+ 
  tm_layout(legend.width = 2)+
  tm_scale_bar(breaks = c(0,100,200),text.size = 1)
tmap_arrange(map1,map2)

 

以上就是今天的内容,主要就是要熟练各类地图函数的参数设置,总结来说R语言绘制地图并不难。如果这个教程有帮到你,请点赞转发支持一下!我是加拿大一直黄花,我们下期再见。

 


http://www.kler.cn/a/414825.html

相关文章:

  • SQL Server数据库日志(ldf文件)清理
  • scrapy豆瓣爬虫增强-批量随机请求头
  • 68000汇编实战01-编程基础
  • elasticsearch单节点模式部署
  • 挑战用React封装100个组件【001】
  • 【Maven】继承和聚合
  • 【知识科普】Restful架构风格
  • 16 go语言(golang) - 并发编程select和workerpool
  • Kafka面试题(三)-- 内含面试重点
  • Navicat 预览变更sql
  • AI潮汐日报1128期:Sora泄露引发争议、百度早期研究对AI领域Scaling Law的贡献、Meta发布系列AI开源项目
  • 【linux014】文件操作命令篇 - head 命令
  • 镜舟科技积极参与北京市开源项目产融对接会,共谋开源新未来
  • HarmonyOS(60)性能优化之状态管理最佳实践
  • 【ArcGIS Pro实操第11期】经纬度数据转化成平面坐标数据
  • 深度学习作业九 RNN-SRN-Seq2Seq
  • 服务器数据恢复—raid5阵列+LVM+VXFS数据恢复案例
  • 英语知识网站开发:Spring Boot框架应用
  • 行为型模式-迭代器模式
  • 【高等数学学习记录】微分中值定理
  • 网络传输介质
  • 怎么样才算得上熟悉高并发编程?
  • vue3【实战】自定义全局指令(含批量自动注册全局自定义指令,复制,防抖,节流,长按,水印,拖拽,打字机特效等)
  • git常用命令和问题
  • C++的依赖颠倒原则
  • C++ 【异步日志模块和std::cout << 一样使用习惯替代性好】 使用示例,后续加上远程日志