Интерполировать v из нерегулярных точек x,y,z в R

Я пытаюсь использовать R для интерполяции значения ответа v от нерегулярно размещенных 3-мерных обработок x, y, z. В этом случае у меня есть 50 уникальных трехмерных точек (обработки в моем эксперименте) и одна переменная отклика. У меня есть одно значение v для каждого из 50 баллов, но я хочу интерполировать ответ между этими 50 баллами. Насколько я понимаю, многим интерполяционным кодам, таким как contour(), нужны данные с регулярным интервалом, но мои обработки вообще не располагаются регулярно в трехмерном пространстве.

реальный фрейм данных выглядит так:

head(df)  

  x      y        z       v     
14.200 27.20250 8.057316 2.427  
13.675 37.98000 7.874447 1.740   
13.700 24.64750 7.760348 3.637   
13.800 32.93833 7.711711 2.175   
13.775 30.17500 8.040487 2.498   
14.125 18.65750 7.658253 3.246  

до строки 50. Я уже использовал ploy_ly() для создания трехмерной диаграммы рассеяния, окрашенной v, но я хочу интерполировать ее в форму функционального отклика или в виде трехмерного контурного графика, чтобы заполнить пробелы между точками. Это также означает, что мне придется раскрасить его прозрачными цветами или контурным графиком в виде срезов или чего-то еще. Есть идеи?

Воспроизводимый код набора данных:

ДФ:

df <- data.frame(matrix(ncol = 4,nrow=50))
colnames(df) <- c("x", "y", "z","v")
set.seed(5)
df$x <- rep(1:25, each=2)
df$y <- sample(40, size = nrow(df), replace = TRUE)
df$z <- sample(30, size = nrow(df), replace = TRUE)
df$v <- c(c(1:25),c(25:1))

3D сюжет:

install.packages("plotly")
library(plotly)
plot_ly(x=df$x, y=df$y, z=df$z, type="scatter3d", mode="markers",color=df$v)%>%
  layout(
    scene = list(
      xaxis = list(title = "X"),
      yaxis = list(title = "Y"),
      zaxis = list(title = "Z")))

Спасибо!

0 ответов

Другие вопросы по тегам