如何使用 -scatter3d- 绘制具有已知系数的多元函数
How to plot a multivariate function with known coefficients using -scatter3d-
我正在尝试使用 R 绘制一个函数,其形式为:
$$z=\beta_{0}+\beta_{1}x+\beta_{2}x^{2}+\beta_{3}y+\beta_{4}y^{2}+\ beta_{5}x*y$$
我有所有 $\beta$ 的数值。我似乎找不到使用 -scatter3d- 的函数形式的示例,而且我不是 运行 R 中的回归,也不是绘制 z、x 和 y 的系列。
我目前有
scatter3D(df$z=0.0279x-0.0000188x_sq+0.0422y-0.00708y_sq-0.000181x_y, df)
而且还没有添加任何其他内容,因为我收到一条错误消息:
Error: unexpected '=' in "scatter3D(df$z="
所以我假设这是一个语法问题,但似乎找不到任何相关信息。
几件事:
您将无法针对仅依赖 2 个轴的单个变量绘制 4 个连续变量。
公式遵循 y ~ x + z
模式,因此请将您的 =
更改为 ~
。
您不需要在任何变量前使用 df$
,因为您使用 ..., df
部分指定了数据。
公式不接受系数,但您可以像这样在原始数据框中轻松更改它们:
df<-data.frame(x=rnorm(100,5,1),
y=rnorm(100,50,1),
z=rnorm(100,500,1))
df$x_sq<-0.000188*(df$x)^2
df$y_sq<-0.0708*(df$y)^2
df$y2<-0.0422*(df$y)
df$x2<-0.0279*(df$x)
scatter3d(z~x2+y2,df)
还有https://meta.stackexchange.com/questions/30559/latex-on-stack-overflow
如果你想要一个表面,而不是散点,那么修改这里的系数:
x <- seq(-10, 10, length.out = 50)
y <- x
zf<-function(x,y){1*x^2+1*x-0.1*y^2-0.1*y+0.1*y*1*x}
z <- outer(x, y, zf)
surface3d(x,y,z)
我正在尝试使用 R 绘制一个函数,其形式为:
$$z=\beta_{0}+\beta_{1}x+\beta_{2}x^{2}+\beta_{3}y+\beta_{4}y^{2}+\ beta_{5}x*y$$
我有所有 $\beta$ 的数值。我似乎找不到使用 -scatter3d- 的函数形式的示例,而且我不是 运行 R 中的回归,也不是绘制 z、x 和 y 的系列。
我目前有
scatter3D(df$z=0.0279x-0.0000188x_sq+0.0422y-0.00708y_sq-0.000181x_y, df)
而且还没有添加任何其他内容,因为我收到一条错误消息:
Error: unexpected '=' in "scatter3D(df$z="
所以我假设这是一个语法问题,但似乎找不到任何相关信息。
几件事:
您将无法针对仅依赖 2 个轴的单个变量绘制 4 个连续变量。
公式遵循 y ~ x + z
模式,因此请将您的 =
更改为 ~
。
您不需要在任何变量前使用 df$
,因为您使用 ..., df
部分指定了数据。
公式不接受系数,但您可以像这样在原始数据框中轻松更改它们:
df<-data.frame(x=rnorm(100,5,1),
y=rnorm(100,50,1),
z=rnorm(100,500,1))
df$x_sq<-0.000188*(df$x)^2
df$y_sq<-0.0708*(df$y)^2
df$y2<-0.0422*(df$y)
df$x2<-0.0279*(df$x)
scatter3d(z~x2+y2,df)
还有https://meta.stackexchange.com/questions/30559/latex-on-stack-overflow
如果你想要一个表面,而不是散点,那么修改这里的系数:
x <- seq(-10, 10, length.out = 50)
y <- x
zf<-function(x,y){1*x^2+1*x-0.1*y^2-0.1*y+0.1*y*1*x}
z <- outer(x, y, zf)
surface3d(x,y,z)