如何使用第四列为R中的3D图着色?

时间:2019-05-16 22:33:45

标签: plot 3d plotly interpolation 4d

我有一个坐标(x,y,z)和一个与要用彩色表示的每个点相关的值(对我来说,它们是在那些位置测得的分贝级别)。我希望绘制这些点,然后在它们之间进行插值以获得平滑的图形,但无法弄清楚。伪数据集如下:

X   Y   Z   dB min
1   0.5 1   118
0.5 1   1   117
1   1   1   117
1.5 1   1   117
1   1.5 1   116
1   0.5 2   119
0.5 1   2   118
1   1   2   118
1.5 1   2   118
1   1.5 2   117
1   0.5 3   120
0.5 1   3   119
1   1   3   119
1.5 1   3   119
1   1.5 3   118
1   0.5 4   119
0.5 1   4   118
1   1   4   118
1.5 1   4   118
1   1.5 4   117

我尝试通过将colvar设置为等于dB min列(设置为变量d)来使用scatter3D,但是出现以下错误:

Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] : non-numeric argument to binary operator

x<-"data$x"
y<-"data$y"
z<-"data$z"
d<-"data$dB min"

install.packages("plot3D")
library("plot3D")

scatter3D(x, y, z, d, colvar = d, col = NULL, add = FALSE)

错误:

Error in r[i1] - r[-length(r):-(length(r) - lag + 1L)] : non-numeric argument to binary operator

我希望每个xyz点都可以使用d变量着色,但这只是给了我一个错误,并且没有绘制任何内容。任何帮助将不胜感激。甚至不知道从点之间的插值处开始。

0 个答案:

没有答案