前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这样的地图一键绘制!这个工具绘制地图太方便了~~

这样的地图一键绘制!这个工具绘制地图太方便了~~

作者头像
DataCharm
发布2024-05-23 13:31:12
680
发布2024-05-23 13:31:12
举报

前言

我们的数据可视化课程已经上线啦!!目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!

我们第一个数据可视化交流圈子也已经上线了,主要以我的第一本书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供「课堂式」教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~

参与课程或者圈子的你将获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。

「tidyterra」-像tidyverse一样操纵空间栅格数据~~

在收集我们R语言数据可视化课程的学员问题时,发现咨询的比较多的就是如何使用R语言便捷的处理地理数据?最好能像tidyverse一样具有多个便捷的处理函数。

今天就给大家介绍一个超好用的地理数据处理、可视化绘制工具-「tidyterra」,它提供了一种基于tidyverse哲学的方式来处理栅格数据。

tidyterra工具简介

tiderterra是 R 语言中用于处理地理空间数据的工具包,它提供了一种基于tidyverse哲学的方式来处理栅格数据。以下是 tiderterra的一些主要特点和功能:

  1. 「基于tidyverse:」 tidyterra 遵循了 tidyverse 的设计原则,因此可以与 dplyrggplot2 等包进行无缝集成,使得地理空间数据的处理更加流畅和一致。
  2. 「支持栅格数据操作:」 tidyterra 提供了丰富的函数和操作符来处理栅格数据,包括栅格数据的创建、修改、合并、筛选、绘图等。
  3. 「数据转换和重投影:」 tidyterra 具有对地理空间数据进行转换和重投影的能力,可以方便地将数据从不同的坐标参考系转换到目标参考系。
  4. 「与 terra 包集成:」 tidyterra 是建立在 terra 包之上的,而 terra 包本身提供了强大的地理空间数据处理功能,因此 tidyterra 可以充分利用 terra 包的功能来处理栅格数据。
  5. 「易于学习和使用:」 由于 tidyterra 遵循了 tidyverse 的设计规范,因此对于已经熟悉 tidyverse 的用户来说,学习和使用 tidyterra 将会更加轻松和直观。

使用tidyterra可以在 R 中更加方便地处理和分析栅格数据,使得地理空间数据分析的过程更加流畅和高效。

tidyterra常用处理函数

tibble methods

可以看出,tidyterra工具几乎囊括了数据处理、数据转换以及数据可视化过程中常用的操作方法,而且都是基于空间栅格数据,大大提高了数据处理效率。

tidyterra可视化常见问题

  • NA 值显示为灰色

这个问题相比大家在绘制空间数据的时候经常会遇到,大部分的解决方式都是使用文本指出NA值表示,如下:

使用文本表示NA值

可以用调整scales值进行修改:

代码语言:javascript
复制

# Modify with scales
  scale_fill_continuous(na.value = "transparent") 

或者使用其他颜色表示:

代码语言:javascript
复制
scale_fill_viridis_c(na.value = "orange") +
  • tidyterra中的渐变调色板

tidyterra工具中提供了大量的渐变调色板,以下列举出其中一个:

更多关于tidyterra包中的渐变颜色板样例,大家可阅读:tidyterra*渐变颜色板样例[1]

  • tidyterra可视化功能

既然集成了ggplot2的绘图功能, tidyterra包的可视化功能也是非常完善的,且再也不用之前的大量数据处理过程啦!!

  1. SpatRasters
代码语言:javascript
复制
library(ggplot2)
# A faceted SpatRaster
ggplot() +
  geom_spatraster(data = temp) +
  facet_wrap(~lyr) +
  scale_fill_whitebox_c(
    palette = "muted",
    na.value = "white")
  1. Contour lines for a specific layer
代码语言:javascript
复制
# Contour lines for a specific layer

f_volcano <- system.file("extdata/volcano2.tif", package = "tidyterra")
volcano2 <- rast(f_volcano)

ggplot() +
  geom_spatraster(data = volcano2) +
  geom_spatraster_contour(data = volcano2, breaks = seq(80, 200, 5)) +
  scale_fill_whitebox_c() +
  coord_sf(expand = FALSE) +
  labs(fill = "elevation")
  1. SpatVectors
代码语言:javascript
复制
lux <- system.file("ex/lux.shp", package = "terra")

v_lux <- terra::vect(lux)

ggplot(v_lux) +
  geom_spatvector(aes(fill = POP), color = "white") +
  geom_spatvector_text(aes(label = NAME_2), color = "grey90") +
  scale_fill_binned(labels = scales::number_format()) +
  coord_sf(crs = 3857)
  1. geom_spatraster_rgb()
代码语言:javascript
复制
ggplot(aoi) +
  geom_spatraster_rgb(data = rgb_tile, alpha = 1) +
  geom_spatraster(data = clim) +
  geom_spatvector(fill = NA) +
  scale_fill_whitebox_c(
    palette = "deep", alpha = 0.5,
    labels = scales::label_number(suffix = " mm.")
  ) +
  coord_sf(expand = FALSE) +
  labs(
    title = tit_lab,
    subtitle = "With continuous overlay",
    fill = "Precipitation",
    caption = cap_lab
  )

更多关于tidyterra的数据可视化功能,读者可参考:tidyterra官网[2]

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

本文分享自 DataCharm 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 「tidyterra」-像tidyverse一样操纵空间栅格数据~~
    • tidyterra工具简介
      • tidyterra常用处理函数
        • tidyterra可视化常见问题
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档