我正在尝试使用R来插值不规则放置的3维处理x,y,z的响应值v。在这种情况下,我有50个唯一的3维点(实验中的处理)和一个响应变量。对于50个点中的每一个,我都有一个v值,但是我想在这50个点之间插入响应。根据我的理解,许多插值代码(例如,contour())都需要规则间隔的数据,但是我的处理方法在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:
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")))
谢谢!