行业报告 AI展会 数据标注 标注供求
数据标注数据集
主页 > 机器学习 > 正文

R-tmap 绘制带指北针和比例尺的空间地图

01. tmap 简介
说起绘制空间数据相关的可视化作品,还是比Python 要方便的多的。这里我们就简单介绍下tmap 空间数据可视化绘图包,官网(https://mtennekes.github.io/tmap/) 还是有很多优秀的效果图的,如下:

 

 

值得注意的是,tmap 拥有类似于 “图层” 语法绘图原理,熟悉ggplot2绘图的小伙伴肯定会快速上手的。当然其也拥有较多的绘图函数,可是高度定制化自己的所需要的空间可视化作品。接下来,我们用一个具体例子对tmap 主要绘图函数进行说明。
 
02. 实例展示
这里我们使用中国shap文件(注:该文件不可以进行文章、期刊等出版,仅限教程使用)。本期推文所需的shp文件主要为:country、province、world三个shp文件和用于标注城市名的city文件。读取代码如下:
library(rgdal)
library(tmap)
library(tmaptools)
library(sp)
 
country <- readOGR("bou1_4l.shp")
province <- readOGR("province_polygon.shp")
#绘制世界底图背景
world <- readOGR("ne_50m_admin_0_countries.shp")
 
city <- read.csv("simplemaps-worldcities-basic.csv", header = TRUE)
city <- city[sample(1:nrow(city), 200),] # 随机筛选200个
coordinates(city) <- ~lng+lat 
proj4string(city) <- CRS("+proj=longlat +datum=WGS84")
 
接下来,我们就使用tmap 包 对以上几个元素进行可视化绘制展示。具体代码如下:
# 绘图
map_test <- tm_shape(world, 
         xlim = c(70, 140), 
         ylim = c(0, 55)) + 
  tm_borders("grey40", lwd = 1.5) + 
  tm_grid(labels.size = 1)+ 
tm_shape(province) +
  tm_fill(col = "lightgrey") + 
  tm_borders("grey60", lwd = 0.8) + 
tm_shape(country) + 
  tm_lines(col="grey20", lwd = 1.8) + 
tm_shape(city) +
   tm_text("city", size=0.5)+
#添加比例尺
tm_scale_bar(position=c("left", "bottom"),text.size = 0.4) + 
#添加指北针
tm_compass(type = "4star", position=c("left", "top")) +
 
tm_xlab("Longitude",size = 1) +
tm_ylab("Latitude",size = 1)+
tm_credits("Visualization by DataCharm",size=.6,position = c(0.8, 0.02),fontface = "bold")+
tm_style("classic")+
tm_layout(inner.margins=c(0.01,0.05,0.05,0.05))
map_test
知识点:
比例尺(Scale bar)添加
#添加比例尺
tm_scale_bar(position=c("left", "bottom"),text.size = 0.4) +
 
官网的一些主要属性如下:

 

 
指北针(Map compass)添加
#添加指北针
tm_compass(type = "4star", position=c("left", "top")) +
官网主要属性如下:

 

 
这里 指北针类型(type)主要如下:
"arrow", "4star", "8star", "radar", "rose".  文末都会有相应的样式结果。
主题风格 tm_style 
tm_style("classic") +
其他风格还有:"white", "gray", "natural", "cobalt", "col_blind", "albatross", "beaver", "bw", "watercolor", "red", "black"。
设置风格可以省掉很多繁琐的绘图需求哦。
 
上述主要结果如下:

 

 
其他风格(这里同时设置指北针和主题风格)
tm_compass(type = "arrow", position=c("left", "top")) +
tm_style("cobalt")

 

tm_compass(type = "rose", position=c("left", "top")) +
tm_style("natural")

 

 
(注:由于转换投影出错,也就没绘制其他投影下的效果。以前还是可以的,查了github,作者也说过应该是版本更新导致。后面会继续跟进的。
 
声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
 
 

微信公众号

声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
SEM推广服务

Copyright©2005-2026 Sykv.com 可思数据 版权所有    京ICP备14056871号

关于我们   免责声明   广告合作   版权声明   联系我们   原创投稿   网站地图  

可思数据 数据标注行业联盟

扫码入群
扫码关注

微信公众号

返回顶部