The akima package has a somewhat problematic license (the ACM license, which doesn't allow commercial use). The interp package provides some of the same functionality but is free open source.

rgl has some support for output from interp. I forget if it would also work with akima.

Duncan

On 2025-05-31 12:28 p.m., Ben Bolker wrote:
     I'll mention that the 'akima' package is also handy for this kind of
interpolation.

On 5/31/25 11:18, Duncan Murdoch wrote:
On 2025-05-31 7:04 a.m., ravi via R-help wrote:
Hi,
rgl plots seem to require the z object in the form of a matrix. I
would like some help in constructing this matrix when I cannot use the
outer function. Let me explain.
library(rgl)
library(plot3D)
x <- 1:10
y <- 1:20
fun1 <- function (x,y) {x^2+y^2}
z <- outer(x,y, fun1)
open3d()
surface3d(x,y,z,col="red",theta=50, phi=20)

This works fine. However, when I have a data frame of x, y and z with
z as a vector, how do I proceed?
z <- x^2+y^2
surface3d(x,y,z,col="red",theta=50, phi=20)

Error in surface3d(x, y, z, col = "red", theta = 50, phi = 20) :
    At least one coordinate must be a matrix

How do I get z in the form of a matrix?

  From a private message, it appears you have a scattering of x and y
values, and each has a z.  You'd like a plot of the surface z(x, y).

It won't work with your sample data because x and y have different
lengths, but you can do something like this to triangulate your data and
do linear interpolation within each triangle:

     x <- runif(100, 0, 10)   # 100 random points from 0 to 10
     y <- runif(100, 0, 20)   # 100 random points from 0 to 20
     z <- x^2 + y^2           # z as a function of x and y

     library(deldir)  # need this to triangulate the x, y values
     dxyz <- deldir(x, y, z = z)

     library(rgl)
     plot3d(dxyz, col = "red")


Use plot3d(dxyz, col = "red", front = "lines") to see the triangulation
more clearly.

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-
guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to