尝试使用persp()函数在r中生成3D曲面图,收到错误消息

fv2wmkja  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(214)

我试图绘制一个函数,这是依赖于两个变量,x和y在三维曲面图在r。我得到一个错误消息,说增加'x'和'y'的值预期。我不知道如何安排这两个变量在升序,这可以帮助产生的图形。
我的代码:

x <- c(-1, 2, 15, 0, 1, 4, 7, 4, 5, 2)
y <- c(1.5, 3, 7, 2, 1.5, 15, 12, 8, 20, 21)
f <- sqrt(x^2+y^2)

df <- data.frame(x, y, f)

func <- function(x, y){
  df$f + (x-x + y-y)}

z <- outer(x, y, func)

persp(x, y, z,
      main="Perspective Plot of a function",
      zlab = "Height",
      theta = 30, phi = 15,
      col = "springgreen", shade = 0.5,
      ltheta = 120,
      ticktype = "detailed")
w46czmvw

w46czmvw1#

如果你想把一个两变量的函数绘制成曲面图,那么你实际上不需要两个输入向量,你需要一个在x和y方向上均匀分布的输入值网格,它将覆盖两个输入的范围:

f <- function(x, y) sqrt(x^2 + y^2)
x <- y <- -1:20

persp(x, y, z = outer(x, y, f),
      main="Perspective Plot of a function",
      zlab = "Height",
      theta = -45, phi = 15,
      col = "springgreen", shade = 0.5,
      ltheta = 120,
      ticktype = "detailed")

相关问题