R: "z" 必须是数值矩阵

R: "z" must be a numeric matrix

我正在使用 R 编程语言。我正在按照这里的教程在 R 中制作 3 个图:https://plotly.com/r/3d-surface-plots/

  library(plotly)
    # volcano is a numeric matrix that ships with R
    fig <- plot_ly(z = ~volcano)
    fig <- fig %>% add_surface()
    
    fig

我试图用我自己的数据复制这个例子:

#generate data
a = rnorm(100,10,10)
b = rnorm(100,5,5)
c = rnorm(100,5,10)
d = data.frame(a,b,c)

# plot
fig <- plot_ly(z = ~d)
fig <- fig %>% add_surface()

fig

但是这会产生以下错误:

Error: 'z' must be a numeric matrix

我尝试将“d”更改为矩阵:

d = as.matrix(d)

但是我得到了同样的错误。

有人可以告诉我我做错了什么吗?

谢谢

如错误消息中所述,z 轴的值需要是数字矩阵。默认数据volcano也是一个矩阵。所以你可以这样做:

fig <- plot_ly(z = ~as.matrix(d))
fig <- fig %>% add_surface()

fig