Using a 2d matrix in R, how can I create a 3d surface plot, where columns=x, rows=y and the values are the heights in z?
In the example below, x values would be 1:5, y value would be 1:5, and the numbers would represent heights/values in z.
> m<-matrix(rnorm(25),nrow=5,ncol=5)
> m
[,1] [,2] [,3] [,4] [,5]
[1,] -1.495513045 0.8000040 -1.1499261 1.65661138 0.8140510
[2,] -1.150018195 -0.7582933 0.8306922 0.16026908 0.3913198
[3,] -0.852609406 0.5525621 0.3585986 -0.45054768 -1.2259927
[4,] -0.001926297 -0.5857351 2.1518281 0.03192463 0.2065039
[5,] -1.641128610 0.4333973 -1.0616628 -0.92143426 -0.9598991
Package
rgl
should get you started...To get a 3D surface plot of a 2D matrix that contains the Z-values, try:
Use
theta
to adjust the viewing angle. With my data, I get the following plot: