我们的数据可视化课程已经上线啦!!目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!
我们第一个数据可视化交流圈子也已经上线了,主要以我的第一本书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供「课堂式」教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~
参与课程或者圈子的你将获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。
在收集我们R语言数据可视化课程的学员问题时,发现咨询的比较多的就是如何使用R语言便捷的处理地理数据?最好能像tidyverse一样具有多个便捷的处理函数。
今天就给大家介绍一个超好用的地理数据处理、可视化绘制工具-「tidyterra」,它提供了一种基于tidyverse哲学的方式来处理栅格数据。
tiderterra是 R 语言中用于处理地理空间数据的工具包,它提供了一种基于tidyverse哲学的方式来处理栅格数据。以下是 tiderterra的一些主要特点和功能:
tidyterra
遵循了 tidyverse
的设计原则,因此可以与 dplyr
、ggplot2
等包进行无缝集成,使得地理空间数据的处理更加流畅和一致。tidyterra
提供了丰富的函数和操作符来处理栅格数据,包括栅格数据的创建、修改、合并、筛选、绘图等。tidyterra
具有对地理空间数据进行转换和重投影的能力,可以方便地将数据从不同的坐标参考系转换到目标参考系。terra
包集成:」 tidyterra
是建立在 terra
包之上的,而 terra
包本身提供了强大的地理空间数据处理功能,因此 tidyterra
可以充分利用 terra
包的功能来处理栅格数据。tidyterra
遵循了 tidyverse
的设计规范,因此对于已经熟悉 tidyverse
的用户来说,学习和使用 tidyterra
将会更加轻松和直观。使用tidyterra可以在 R 中更加方便地处理和分析栅格数据,使得地理空间数据分析的过程更加流畅和高效。
tibble methods
可以看出,tidyterra工具几乎囊括了数据处理、数据转换以及数据可视化过程中常用的操作方法,而且都是基于空间栅格数据,大大提高了数据处理效率。
这个问题相比大家在绘制空间数据的时候经常会遇到,大部分的解决方式都是使用文本指出NA值表示,如下:
使用文本表示NA值
可以用调整scales值进行修改:
# Modify with scales
scale_fill_continuous(na.value = "transparent")
或者使用其他颜色表示:
scale_fill_viridis_c(na.value = "orange") +
tidyterra工具中提供了大量的渐变调色板,以下列举出其中一个:
更多关于tidyterra包中的渐变颜色板样例,大家可阅读:tidyterra*渐变颜色板样例[1]
既然集成了ggplot2的绘图功能, tidyterra包的可视化功能也是非常完善的,且再也不用之前的大量数据处理过程啦!!
library(ggplot2)
# A faceted SpatRaster
ggplot() +
geom_spatraster(data = temp) +
facet_wrap(~lyr) +
scale_fill_whitebox_c(
palette = "muted",
na.value = "white")
# 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")
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)
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]