gpt4 book ai didi

r - R中的二维插值,没有任何外插

转载 作者:行者123 更新时间:2023-12-04 02:18:35 26 4
gpt4 key购买 nike

我有一个二维数据数组,有一些缺失值。共有三列:

  • x
  • y
  • 强度

  • 我可以在 ggplot2 中绘制 x 对 y 的图,强度作为色标。

    enter image description here

    我想平滑颜色之间的过渡,并且遇到了 idw函数,来自 gstat包裹。 idw旨在在二维中插入 NA。它不应该外推,虽然它在技术上确实尊重数据的限制(双向±20),但它也试图填补图边缘的空白,如下所示:

    enter image description here

    我想避免在我拥有的数据范围之外发生任何外推,包括第一张图中显示的数据的右下角。

    我怎么能做到这一点?

    编辑 :这是一个示例数据集。这与上面显示的数据集并不完全相同,但它再次在右下角包含一个大的缺失区域。
    structure(list(x = c(10L, 15L, -10L, 0L, -5L, -10L, -15L, 0L, 
    -15L, 15L, 5L, 10L, -20L, -5L, -15L, -15L, -5L, 5L, 20L, -20L,
    -15L, 20L, -15L, 5L, -5L, -20L, -5L, 15L, 0L, 0L, 15L, 10L, 0L,
    20L, -10L, 5L, 5L, 0L, 20L, 5L, -15L, 5L, -5L, -5L, -15L, -10L,
    -10L, -10L, -5L, -10L, 15L, 20L, 0L, 20L, -15L, 20L, -20L, -15L,
    10L, 15L, 15L, -5L, 5L, 15L, 20L, 20L, -10L, -20L, -20L, 15L,
    -10L, 10L, 5L, -20L, 20L, 10L, 0L, 10L, -10L, 0L, 10L, 10L, 10L,
    -20L, 15L, -20L, 0L, -20L, -5L, 5L), y = c(0L, -10L, 0L, 20L,
    0L, -10L, 0L, 0L, -20L, 20L, 0L, -10L, -10L, -10L, -10L, 20L,
    10L, -10L, -20L, -20L, -10L, -10L, 0L, 10L, -20L, 20L, 0L, 0L,
    0L, -20L, 0L, 0L, 10L, 10L, -20L, -20L, -10L, 20L, 10L, 20L,
    10L, -20L, 20L, -10L, 20L, 20L, 10L, 10L, -20L, -10L, -10L, 20L,
    -10L, -10L, -20L, 0L, -10L, 10L, -10L, 10L, -20L, 10L, 20L, 20L,
    -20L, 20L, 0L, 10L, 10L, -20L, 20L, -20L, 10L, 0L, 0L, 10L, 10L,
    -20L, -20L, -20L, 20L, 20L, 10L, 20L, 10L, -20L, -10L, 0L, 20L,
    0L), intensity = c(12.9662, NA, 24.4379, 26.3923, 26.9449, 16.7372,
    13.7691, 8.029, 11.922, 11.1967, 15.2792, NA, 14.4159, 20.6542,
    22.0509, 17.356, 14.3841, NA, NA, 10.326, 6.0451, NA, 12.9515,
    3.6745, NA, 18.1552, 9.9532, 9.9361, 7.0392, NA, 10.9814, 10.8351,
    4.9017, 5.7864, 14.098, NA, NA, 6.3305, 6.4405, 49.2791, 19.9774,
    NA, 25.1955, 28.5234, 20.2077, 20.3224, 12.688, 22.1371, NA,
    17.5108, NA, 7.9351, NA, NA, 11.0975, 8.2349, 12.1194, 21.865,
    NA, 10.7178, NA, 21.8222, 13.5971, 6.9751, NA, 8.8046, 22.0709,
    14.2043, 27.8561, NA, 17.4329, NA, 7.4057, 15.2797, 1.0122, 11.1874,
    35.5814, NA, 27.5919, NA, 11.8159, 15.8433, 12.297, 29.1978,
    20.4151, 22.6336, NA, 16.0019, 16.9746, 10.8613)), .Names = c("x",
    "y", "intensity"), row.names = c(NA, -90L), class = "data.frame")

    最佳答案

    如果我了解您要做什么,您可以通过在插值之前删除 NA 来使用 ggplot2 中的基本方法来执行此操作。

     library(ggplot2)

    data<-data.frame(data)
    data_NA.rm<-data[!is.na(data$intensity),]

    ggplot(data=data_NA.rm,aes(x=x,y=y))+
    geom_raster(aes(fill=intensity),interpolate=TRUE)

    结果是:

    enter image description here

    关于r - R中的二维插值,没有任何外插,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37433875/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com