[R] constructing a matrix for rgl plots

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Sat May 31 18:28:17 CEST 2025


    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 using 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.

-- 
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University
Director, School of Computational Science and Engineering
* E-mail is sent at my convenience; I don't expect replies outside of 
working hours.



More information about the R-help mailing list