[R] 3D Surface plot
Peter Ehlers
ehlers at ucalgary.ca
Sat May 1 13:08:34 CEST 2010
On 2010-04-30 13:35, abotaha wrote:
>
> Dear All,
>
> I want to create a surface plot from the data. My data set is consists of x,
> y and z data.
> I plotted in very easy way by Excel worksheet as shown in the attached
> picture.
>
> I did some steps in R, but I cannot have the same plot as in Excel
> worksheet's figure.
> the R code is
>
> x<- c(-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1)
> y<- c(-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1)
> z<- c(0.226598762, 0.132395904, 0.14051906, 0.208607098, 0.320840304,
> 0.429423216, 0.54086732, 0.647792527, 0.256692375,
> 0.256403273, 0.172881269, 0.121978079, 0.156718831, 0.17175081,
> 0.32791861, 0.420194456, 0.493195109, 0.619020921,
> 0.278066455, 0.199822296, 0.140827896, 0.140139205, 0.206984231,
> 0.2684947, 0.340728872, 0.422645622, 0.501908648,
> 0.285697424, 0.22749307, 0.16881002, 0.13354722, 0.149532449,
> 0.213353293, 0.283777474, 0.355946993, 0.427175997,
> 0.294521663, 0.236133131, 0.18710497, 0.14828074, 0.145457711,
> 0.182992988, 0.228281887, 0.291865148, 0.341808458,
> 0.271987072, 0.252962505, 0.201123092, 0.162942848, 0.14828074,
> 0.167205292, 0.214481881, 0.27141981, 0.332162403,
> 0.268966875, 0.253628745, 0.213509108, 0.180342353, 0.151623426,
> 0.1617176, 0.192572929, 0.243404723, 0.301780548,
> 0.284462825, 0.25473406, 0.215401758, 0.202840815, 0.171061666,
> 0.160368388, 0.183680312, 0.226156887, 0.272598273,
> 0.305655289, 0.247134344, 0.235118253, 0.214725129, 0.185684599,
> 0.167917048, 0.184066896, 0.218763431, 0.256692375)
>
> model<-data.frame(x,y,z)
> scatterplot3d(model, type="h",highlight.3d=TRUE,
> col.axis="blue",col.grid="grey", main="scatterplot3d - 2", pch=16,)
>
> Any help would appreciat.
You're misunderstanding what scatterplot3d() does: it produces a
_point cloud_, not a surface. You probably want persp() or
wireframe() in pkg:lattice.
Try this:
z1 <- matrix(z, 9, 9)
persp(x, y, z1)
or
library(lattice)
g <- expand.grid(x = x, y = y)
g$z <- z
wireframe(z ~ x * y, data = g)
or, depending on your needs, you might want to fool around
with persp3d() in the rgl package (assuming that have installed it):
library(rgl)
persp3d(x, y, z1, col = 'skyblue')
-Peter Ehlers
>
>
>
> http://n4.nabble.com/forum/FileDownload.jtp?type=n&id=2077409&name=Excel_Figure.png
--
Peter Ehlers
University of Calgary
More information about the R-help
mailing list