tidyterra!空间数据处理、可视化它都行!绝了...

文摘   教育   2024-10-18 11:36   江苏  
  • 前言

    • 一、tidyterra-R语言空间数据处理利器
    • 二、可视化学习圈子是干什么的?
    • 三、系统学习可视化
    • 四、猜你喜欢

前言

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

我的可视化书籍学习社群上线啦!可视化学习社区以我的书籍《科研论文配图绘制指南-基于Python/R》为基础进行拓展,提供课堂式教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~

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

「tidyterra」-R语言空间数据处理利器

在新增R语言可视化课程的时候,发现了一个非常棒的空间数据处理、可视化神器-「tidyterra」,就赶紧推荐给大家~~

(PS:后续相关案例也会免费更新到我们的课程中的哈)

tidyterra包介绍

tidyterra是一个 R 语言的工具包,用于处理空间数据和进行空间数据可视化。其主要特点包括使用简单、兼容性强、对空间数据的直观性支持更好等。

熟悉terra包的R语言使用者可定非常清楚该工具包的功能,而tidyterra就是继承terra包的全部功能,其目标是为使用terra} 包创建的对象提供tidyverse包通用方法:SpatRasterSpatVector。同时它还为使用ggplot2绘制这些对象提供了用于可视化展示的geoms绘图功能。

以下是对 tidyterra 的详细介绍:

  1. 空间数据处理:

  • tidyterra 支持对各种空间数据进行处理,包括矢量数据、栅格数据和拓扑数据等。
  • 可以使用 tidyverse 中的习惯用法,如管道操作符%>% ,使得空间数据的处理更加流畅和直观。
  • tidyterra 还支持与其他空间数据处理工具包的配合使用,如 sf、raster、stars 和 spatstat 等。
  • 空间数据可视化:

    • tidyterra 提供了多种可视化工具,如 ggplot2、leaflet 和 mapview 等,能够满足不同需求下的空间数据可视化。
    • ggplot2 支持基于图层的绘图方法,可方便添加不同类型的空间数据并进行自定义调整。
    • leaflet 是一个基于 JavaScript 的交互式地图库,可以生成高度交互性的、响应式的网页地图。
    • mapview 提供了对大规模空间数据的快速可视化方法,可以方便地查看和探索空间数据的内在结构。
  • 兼容性和易用性:

    • tidyterra 支持多种空间数据格式的导入和导出,包括 shp、gpkg、kml 和 geojson 等。
    • tidyterra 的语法设计遵循 tidyverse 的一致性风格,对于熟悉 tidyverse 的用户而言更加友好和易于使用。
    • tidyterra 还提供了详细的文档和演示代码,方便用户快速上手和理解其功能。

    tidyverse包可视化案例

    • SpatRasters对象可视化
    library(tidyterra)
    library(terra)

    # Temperatures
    rastertemp <- rast(system.file("extdata/cyl_temp.tif", package = "tidyterra"))

    # Rename
    rastertemp <- rastertemp %>%
      rename(April = tavg_04, May = tavg_05, June = tavg_06)

    # Facet all layers
    library(ggplot2)

    ggplot() +
      geom_spatraster(data = rastertemp) +
      facet_wrap(~lyr, ncol = 2) +
      scale_fill_whitebox_c(
        palette = "muted",
        labels = scales::label_number(suffix = "º"),
        n.breaks = 12,
        guide = guide_legend(reverse = TRUE)
      ) +
      labs(
        fill = "",
        title = "Average temperature in Castille and Leon (Spain)",
        subtitle = "Months of April, May and June"
      )
    SpatRasters

    # Create maximum differences of two months
    variation <- rastertemp %>%
      mutate(diff = June - May) %>%
      select(variation = diff)

    # Add also a overlay of a SpatVector
    prov <- vect(system.file("extdata/cyl.gpkg", package = "tidyterra"))

    ggplot(prov) +
      geom_spatraster(data = variation) +
      geom_spatvector(fill = NA) +
      scale_fill_whitebox_c(
        palette = "deep", direction = -1,
        labels = scales::label_number(suffix = "º"),
        n.breaks = 5
      ) +
      theme_minimal() +
      coord_sf(crs = 25830) +
      labs(
        fill = "variation",
        title = "Variation of temperature in Castille and Leon (Spain)",
        subtitle = "Average temperatures in June vs. May"
      )
    geom_spatraster()函数
    geom_spatraster()函数绘图结果02
    • SpatVectors对象可视化
    vect(system.file("ex/lux.shp", package = "terra")) %>%
      mutate(pop_dens = POP / AREA) %>%
      glimpse() %>%
      autoplot(aes(fill = pop_dens)) +
      scale_fill_whitebox_c(palette = "pi_y_g") +
      labs(
        fill = "population per km2",
        title = "Population density of Luxembourg",
        subtitle = "By canton"
      )
    autoplot()函数绘制
    • 其他案例
    geom_spatraster_rgb()函数
    geom_spatraster()函数

    更多关于tidyterra包的语法和案例,可参考tidyterra包官网[1]

    我的新书📖《科研论文配图绘制指南基于R语言》已经上市啦!作者专属半价优惠订阅链接如下:

    可视化学习圈子是干什么的?

    科研论文配图书籍学习圈子主要通过以下几个方面,给大家带来比纸质书籍更丰富的学习内容:

    • 直播教学,和读者零距离互动交流
    • 及时修正勘误和定期新增绘制知识点
    • 拓展衍生,绘图知识点远超书籍本身
    • 直播视频+拓展资料+答疑,学习更高效

    「PS」:我们直播教学内容为课堂式教学,原作者带着大家对书籍一章、一节、一页的进行教学。而且直播的视频都会通过剪辑后整理成课程,圈子中的同学可以免费、反复观看。当然,新增内容和定期答疑,直播也是如此。

    • 为何会有这个书籍学习社群?无门槛的微信群难免会鱼龙混杂,问题和质量都无法得到保证,而且一些关键问题经常被淹没,且没有沉淀价值。

    • 随着添加我微信的人日益增多,向我提问的人也越来越多,随便回答一下就太不负责任了;不回答也不是很好;如果都仔细回答,我也有自己的工作并且确实很忙,真的有点心有余而力不足!所以我才会建立这么一个渠道来沉淀我的可视化技巧和分享经验,以及给大家提供一个坚持学习的平台。

    微信扫码下方二维码即可参与我们的书籍学习圈子啦:

    系统学习可视化

    当然,在学习数据可视化的道路上,你也有很多问题得不到解答,也可以加入我们的可视化课程(可视化系列课程推文)后,在学员群里和大家一起谈论,一起进步,或者直接向我提问。如果我觉得你的问题很具有普适性,我会把它写成文章发布在公众号上,让更多人看到,有关我们数据可视化系列课程的服务内容,可以参考下面的 阅读原文

    猜你喜欢

    Antarctic-Plots!不用ArcGIS,我照样可以画出惊艳的地图...
    比Matplotlib合并子图更方便!patchworklib让我告别PS拼图...
    Xarray,不用ArcGIS,所有地理空间绘图全搞定...
    Nature都推荐的箱线图(Boxplot)绘制工具长啥样?免费、在线、灵活操作...?
    集成Matplotlib、Bokeh、Plotly!这个交互式可视化工具这么强的吗?
    完美解决Matplotlib绘图中、英文字体混显问题..
    MATLAB绘图不好看?!不是,你是还没发现这几个工具包吧..
    不是,这个地理数据工具这么强的吗?数据处理、可视化它都行..
    这种环形图太难画?!带你一行代码搞定..
    这种图太多人问了,绘制方法真的很简单..
    不是,这封面图这么多人问的吗?教程来了
    不用Seaborn,这个工具也能绘制超炫的统计图形···
    NetworkX,网络结构图最强绘制工具·····
    所有科研地理图形它都有,这个工具有点猛····
    Nature、Science配图可以一键绘制?!我懵了···
    节后第一天,就因为论文配图,被导师怼了一上午·····
    plotnine,打死不学R语言, 我可以用Python到40岁.....
    TUEplots,一天100张论文配图,导师惊了···

    参考资料

    [1]

    tidyterra包官网: https://dieghernan.github.io/tidyterra/index.html。


    DataCharm
    定期更新与科研学术有关的内容,比如论文插图绘制技巧、实用Python/R拓展包解读、作图软件(Veusz、Qrigin等)教程以及最前沿科研方法等。
     最新文章