2013-06-20 46 views
11

Sử dụng ma trận 2d trong R, làm cách nào tôi có thể tạo ô bề mặt 3d, trong đó cột = x, hàng = y và giá trị là độ cao bằng z?Ô bề mặt 3D từ ma trận 2D

Trong ví dụ bên dưới, giá trị x sẽ là 1: 5, giá trị y sẽ là 1: 5 và các số đại diện cho giá trị/giá trị trong 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 

Trả lời

10

Gói rgl nên giúp bạn bắt đầu ...

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

Để có được một âm mưu bề mặt 3D của một ma trận 2D chứa Z-giá trị, hãy thử:

require(plot3D) 

persp3D(z = TheMatrix2D, theta = 120) 

Sử dụng theta để điều chỉnh góc xem. Với dữ liệu của tôi, tôi nhận được cốt truyện sau:

enter image description here

+0

này có vẻ như cú pháp tốt hơn (vì nó chấp nhận một ma trận như là đầu vào), và có các cài đặt mặc định tốt hơn. – Paul

Các vấn đề liên quan