[R] adding planes/lines to 3d surface plots? (persp, wireframe)

Sam Yeaman yeaman at zoology.ubc.ca
Tue Sep 30 23:20:50 CEST 2008


Dear helplist members,

I have been using 'wireframe()' to make 3d plots using the following call:


wireframe (temp ~ xc2 * mc2, screen = list(z = 230, x = -70, y = 0),  
scales = list (arrows = FALSE))


and these three vectors:


      xc2  mc2        temp
 [1,] 0.1 0.04 0.049797615
 [2,] 0.2 0.04 0.049161159
 [3,] 0.3 0.04 0.048006702
 [4,] 0.4 0.04 0.046208311
 [5,] 0.5 0.04 0.043621147
 [6,] 0.1 0.08 0.047349612
 [7,] 0.2 0.08 0.039975856
 [8,] 0.3 0.08 0.029568382
 [9,] 0.4 0.08 0.018639133
[10,] 0.5 0.08 0.009687882
[11,] 0.1 0.12 0.046551498
[12,] 0.2 0.12 0.037196351
[13,] 0.3 0.12 0.024773644
[14,] 0.4 0.12 0.013159600
[15,] 0.5 0.12 0.005318355
[16,] 0.1 0.16 0.046155843
[17,] 0.2 0.16 0.035859584
[18,] 0.3 0.16 0.022614680
[19,] 0.4 0.16 0.010974976
[20,] 0.5 0.16 0.003884974
[21,] 0.1 0.20 0.045919545
[22,] 0.2 0.20 0.035074424
[23,] 0.3 0.20 0.021392682
[24,] 0.4 0.20 0.009820538
[25,] 0.5 0.20 0.003205077


I would like to add a horizontal plane to this figure, with a 
z-intercept at 0.02, to indicate a cut-off point of scientific interest. 
Alternatively, I could add a line highlighting every point where the 
surface passes through z = 0.02.

If anyone has any ideas how to do this (using persp (), wireframe() or 
something else), I would greatly appreciate it. The closest thing I can 
think of is to use scatterplot3d() and then add a plane3d object, but 
I'd like to have a surface rather than a point cloud. I got two surfaces 
to appear using persp() and par (new = TRUE), but the second surface 
obscures the first.

Thanks,
Sam Yeaman


UBC
Department of Zoology



More information about the R-help mailing list