问题描述
我正在尝试使用薄板样条插值在R中创建3D曲面。到目前为止,我已经成功使用包字段创建了轮廓和线框图,并将其打包在一个函数中:>
TPS_wireframe <- function(DF,VarName1,VarName2,output) {
Var1 <- DF[,VarName1]
Var2 <- DF[,VarName2]
tp.m <- as.matrix(data.frame(DF=Var1,DF=Var2))
t <- Tps(x=tp.m,Y=DF$fitness,lambda=0.02691373)
if (output=="contour") return(surface(t,xlab=VarName1,ylab=VarName2,zlab="fitness"))
wfr.df <- expand.grid(x = Var1,y = Var2)
wfr.df <- wfr.df %>%
mutate(z = as.vector(predict(t,wfr.df)))
if (output=="wireframe") return(wireframe(z ~ x*y,data = wfr.df,shade = TRUE,perspective = TRUE,aspect = c(1,1),colorkey = FALSE,par.Box = list(col=0),col=1,zlab="fitness",ylab=VarName2))
}
TPS_wireframe(df,"tail.d","body.l","wireframe") # example usage
因此,我有一个数据框,我创建了一个TPS回归,然后使用预测创建了一个由插值数据组成的新数据框,从中我创建了一个曲面-在等高线图或线框中。我想将原始数据框中的数据点添加到最终绘图中。特别是,我想将它们添加到等高线图中,因为这可能更容易/更直观。
线框图示例:
等高线图示例:
如果您有兴趣,可以在Dryad https://datadryad.org/stash/dataset/doi:10.5061/dryad.cvdncjt1x上免费访问这些数据。不过,这与该问题无关。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)