欢迎光临散文网 会员登陆 & 注册

R语言学习记录:tmap绘制地图01

2022-07-11 04:00 作者:孤独的王大老实  | 我要投稿

使用 tmap 包,可以非常灵活地生成专题地图。创建绘图的语法与ggplot2类似,但针对地图量身定制。这个vignette适合那些想在几分钟内开始使用 tmap 的人。有关 tmap 的更详细描述,请参阅发表在 Journal of Statistical Software ( JSS )上的一篇文章。但是,该文章描述了 tmap 版本 1.11-2,该版本已过时。从那时起,已经进行了一些重大更改,详见.vignette("tmap-changes")

有关 R 地理功能的更多背景信息,我们推荐使用 R 的 Geocomputation一书的在线版本。本书的使用 R 制作地图章节提供了更多的上下文和丰富的地图制作,和其他包的代码示例。其他好的资源是sf包的vignettes。

案例“Hello World!”

World是sf包中一个空间类对象;它是一个带有特殊的列的数据框,其中每一行都包含一个geometry几何图形,在这种多边形的情况下。为了在 tmap 中绘制它,首先需要使用tm_shape,在这种情况下,可以使用“+”运算符添加图层。tmap 中有很多layer函数,可以通过它们的前缀在文档中轻松找到。另请参阅?'tmap-element'


交互地图Interactive maps

每张地图都可以绘制为static image静态图像,也可以分别使用"plot""view"模式(modes)进行交互查看。模式可以通过函数tmap_mode进行设置,模式之间的切换(toggle)可以通过“开关” ttm()进行。(即切换专题图。


多shapes和多图层Multiple shapes and layers

shape(形状)是一个空间对象(具有来自sfspstars或raster的类)。可以绘制多个形状以及每个形状的多个图层:


分面

有三种方法分面:

1.通过分配多变量名到一个映射中

By assigning multiple variable names to one aesthetic (in this example the first argument of tm_polygons:


2.通过使用tm_facets的by参数分割空间数据

By splitting the spatial data with the by argument of tm_facets:


3.通过使用tmap_arrange函数:(这个其实和拼图一样了


底图和叠加平铺地图Basemaps and overlay tile maps

可以使用图层函数tm_basemap添加平铺底图。可以使用tm_tiles添加半透明覆盖图(例如注释标签annotation labels)。

可以在这个网站上查看可用的底图样式,把对应的字符名称替换一下即可

https://leaflet-extras.github.io/leaflet-providers/preview/



选项和风格Options and styles

函数tm_layouttm_view分别用于指定地图布局和交互方面。这些函数可以以与层函数相同的方式使用,例如

这些选项以及其他几个选项也可以在tmap_options中设置,其工作方式与基本 R 函数options()相同。主要优点是这些选项是全局设置的,因此在会话期间不必在每个映射中指定它们。


style是 tmap 选项的特定配置

可以创建新样式;见?tmap_options

导出地图


Shiny integration

See ?renderTmap for a working example.

快速专题图


Tips ’n Tricks


总结:目前来看,感觉tmap比ggplot方便不少,省去了转换数据框,自带的主题style也很好看。

R语言学习记录:tmap绘制地图01的评论 (共 条)

分享到微博请遵守国家法律