gpt4 book ai didi

r - plot_ly 中的 z 参数到底是什么?

转载 作者:行者123 更新时间:2023-12-02 22:07:13 26 4
gpt4 key购买 nike

我有三个变量:x , y ,和z我想绘制一个曲面图。

z<-runif(50,0,1) 
y<-runif(50,1,2)
x<-runif(50,3,6)
plot_ly(x = ~x, y = ~y, z= ~z) %>% add_surface()

我收到以下错误

Error: `z` must be a numeric matrix

z 到底是什么?如果不是代表纵轴对应的变量?我看过 Volcano 示例,他们使用矩阵来生成该图,但我仍然不确定 z 矩阵在该示例中代表什么。

我希望有人能够绘制一个易于理解的 3D 函数,例如 z=f(x,y) = x^2 + y^2使用surface plot_ly 中的功能这样我就可以理解如何根据三个变量生成一个图。

最佳答案

上述代码的问题是,您没有指定跟踪类型 - 并且您需要传递给 z 参数的内容取决于此规范

传递参数 x、y、z 表明您想要显示 scatter3d 图 - 您可以通过删除 add_surface() 来测试它:

z <- runif(50,0,1) 
y <- runif(50,1,2)
x <- runif(50,3,6)
plot_ly(x = x, y = y, z = z)

这给出了警告:

No trace type specified: Based on info supplied, a 'scatter3d' traceseems appropriate. Read more about this trace type ->https://plot.ly/r/reference/#scatter3d No scatter3d mode specifed:
Setting the mode to markers Read more about this attribute ->https://plot.ly/r/reference/#scatter-mode

另一方面,

add_surface() 建议您要显示 3D 曲面图。您已经提到了 volcano example 。这种图只需要一个数字矩阵来创建图(参数 z)。

根据您的示例代码,您混合了两种绘图类型,从而导致错误消息。

如何避免这种困惑?

如果您查看?plot_ly,其中有传递给相应跟踪类型的参数“...”的描述(z 是其中之一):

Arguments (i.e., attributes) passed along to the trace type. Seeschema() for a list of acceptable attributes for a given trace type(by going to traces -> type -> attributes).

schema() 是一个非常有用的提示,可以帮助您在plotly 库中定位自己。执行以下代码以非常方便的方式浏览不同的绘图跟踪类型及其可用属性: schema_output

# install.packages("listviewer")

library(plotly)
library(listviewer)
schema(jsonedit = interactive())

我猜这就是您最初想要的:

z <- runif(50,0,1) 
y <- runif(50,1,2)
x <- runif(50,3,6)
plot_ly(x = x, y = y, z = z, type = 'mesh3d')

关于r - plot_ly 中的 z 参数到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54435463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com