如何在R中绘制三维函数?

如何在R中绘制三维函数?,r,lattice,R,Lattice,我有以下功能 f(x,y) = 2 x^2 + 12 x * y + 7 y^2 我想在R中画一个三维图?我想知道这是否是可以做到的。因此,我在互联网上查看并尝试了下面的代码,但什么也没有画出来。有人能指出什么地方不对吗 x <- seq(-100,100,0.1) y <- seq(-100,100,0.1) z <- 2*x^2 + 12 * x * y + 7 * y^2 xyz <- data.frame(cbind(x,y,z)) names(xyz) &l

我有以下功能

f(x,y) = 2 x^2 + 12 x * y + 7 y^2
我想在R中画一个三维图?我想知道这是否是可以做到的。因此,我在互联网上查看并尝试了下面的代码,但什么也没有画出来。有人能指出什么地方不对吗

x <- seq(-100,100,0.1)
y <- seq(-100,100,0.1)
z <- 2*x^2 + 12 * x * y + 7 * y^2

xyz <- data.frame(cbind(x,y,z))
names(xyz) <- c('x', 'y', 'z')
library(lattice)
wireframe(z ~x*y, data = xyz, scales = list(arrows = FALSE), zlab = 'f(x,y)', drape = T)

x不会绘制任何内容,因为
z
向量是一维的,仅在
x=y
处定义。要扩展数据框,请使用
outer
expand.grid

 df <- expand.grid(x = x, y = y)
 df$z <- as.vector(outer(x,y, function(x,y) {2*x^2 + 12 * x * y + 7 * y^2}))
 wireframe(z ~ x * y, data = df, scales = list(arrows = FALSE), zlab = 'f(x,y)', drape = T)

df您可能对
emdbook
软件包中的
curve3d
功能感兴趣。。。