首页 > 解决方案 > 从 R 中的不规则 x,y,z 点插值 v

问题描述

我正在尝试使用 R 从不规则放置的 3 维处理 x、y、z 中插入响应值 v。在这种情况下,我有 50 个独特的 3 维点(我的实验中的处理)和一个响应变量。对于 50 个点中的每一个,我都有一个 v 值,但我想在这 50 个点之间插入响应。据我了解,许多插值代码(如轮廓())需要规则间隔的数据,但我的处理在 3D 空间中根本没有规则间隔。

真实的数据框如下所示:

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 着色的 3D 散点图,但我想插入一个功能响应形状或各种 3D 等高线图以填充点之间的空间。这也意味着我必须用透明颜色或切片中的等高线图或其他东西给它上色。有任何想法吗?

可重现的数据集代码:

东风:

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

谢谢!

标签: r3dplotlyinterpolation4d

解决方案


推荐阅读