[R] Using 'polygon' in a 3d plot
Henrik Bengtsson
hb at maths.lth.se
Thu Jan 5 01:07:58 CET 2006
Ted Freeman wrote:
> I'm new to R, after many years of using Matlab. I've found the R
> function 'polygon' to be nearly equivalent to the Matlab function
> 'patch'. For example, the R commands:
>
> plot(c(0, 5), c(0, 4), type = 'n', asp = 1, ann = FALSE)
> x <- c(1, 2, 2, 1.5, 1)
> z <- c(1, 1, 2, 1.7, 2)
> polygon(x, z, col = 'green')
>
> produce a plot with a small green shape exactly as I expect. A nearly
> identical plot can be made in Matlab with these commands:
>
> x = [1, 2, 2, 1.5, 1];
> z = [1, 1, 2, 1.7, 2];
> patch(x, z, 'g')
> axis([0, 5, 0, 4])
> box on
>
> In Matlab I am able to extend this quite easily to a three-dimensional
> plot by simply adding one more vector argument to 'patch'. I don't see
> how to do this in R using 'polygon'. (I've primarily looked at
> scatterplot3d.) Is there another function I can use?
>
> Since I expect that many of you do not use Matlab, I've put two
> graphics showing the example above (Plot 1) and a similar
> three-dimensional plot (Plot 2) on this page:
> http://staff.washington.edu/freeman/patch.html.
Hi, I've got a plot3d() and polygon3d() function in the R.basic package
(http://www.braju.com/R/). Example:
library(R.basic) # plot3d() and polygon3d()
xb <- c(0, 4, 4, 0, 0)
yb <- c(0, 3, 3, 0, 0)
zb <- c(0, 0, 4, 4, 0)
plot3d(xb,yb,zb, type="l", theta=35, phi=30)
x <- c(0.8, 1.6, 1.6, 1.2, 0.8)
y <- c(0.6, 1.2, 1.2, 0.9, 0.6)
z <- c(1, 1, 2, 1.7, 2)
polygon3d(x,y,z, col="green")
This gives a similar plot to what Matlab creates.
/Henrik
> It's Plot 2 that I'd like to be able to reproduce in R.
>
> Thanks for any advice!
>
> -- Ted
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
>
More information about the R-help
mailing list