2013-06-20 12 views
11

Korzystając z macierzy 2d w R, w jaki sposób mogę utworzyć wykres powierzchni 3D, gdzie kolumny = x, wiersze = y, a wartości są wysokościami z?Powierzchniowy wykres 3D z macierzy 2D

W poniższym przykładzie wartości x wyniosłyby 1: 5, wartość y wyniesie 1: 5, a liczby będą oznaczać wysokości/wartości w 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 

Odpowiedz

10

Pakiet rgl powinno Ci zacząć ...

require(rgl) 
# open renderer 
open3d() 
# plot surface 
rgl.surface(1:10 , 1:10 , runif(100)) 
# Export to png 
rgl.snapshot("sample.png" , fmt="png", top=TRUE) 

enter image description here

3

Aby uzyskać 3D wykres powierzchni matrycy 2D zawierającej Z-wartości, spróbuj:

require(plot3D) 

persp3D(z = TheMatrix2D, theta = 120) 

Użyj theta, aby dostosować kąt widzenia. Z moich danych, pojawia się następujący wykres:

enter image description here

+0

To wydaje się lepsze składni (ponieważ akceptuje macierzy jako wejście) i ma lepsze ustawienia domyślne. – Paul