интерполировать v из нерегулярных точек x, y, z в R - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь использовать R для интерполяции значения ответа v от нерегулярно размещенных трехмерных обработок 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:

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")))

Спасибо!

...