Re: [R] interactive rotatable 3d scatterplot

From: Yasir Kaheil <kaheil_at_gmail.com>
Date: Fri, 02 May 2008 21:12:42 -0700 (PDT)

#Install library rgl
#here is the is the function:
rgl.plot3d<-function(z, x, y, cols="red",axes=T,new=T) {xr<-range(x)
x01<-(x-xr[1])/(xr[2]-xr[1])
yr<-range(y)
y01<-(y-yr[1])/(yr[2]-yr[1])
zr<-range(z)
z01<-(z-zr[1])/(zr[2]-zr[1])

if(new) rgl.clear()
if(axes)

	{xlab<-pretty(x)
	ylab<-pretty(y)
	zlab<-pretty(z)
	xat<-(xlab-xr[1])/(xr[2]-xr[1])
	yat<-(ylab-yr[1])/(yr[2]-yr[1])
	zat<-(zlab-zr[1])/(zr[2]-zr[1])
	rgl.lines(c(0,1.1),0,0)
	rgl.lines(0,c(0,1.1),0)
	rgl.lines(0,0,c(0,1.1))	
	rgl.texts(xat,-.05,-.05,xlab)
	rgl.texts(-.05,yat,-.05,ylab)
	rgl.texts(-.05,-.05,zat,zlab)
	rgl.texts(c(0.5,-.15,-.15),c(-.15,.5,-.15),c(-.15,-.15,.5),
		c(deparse(substitute(x)),deparse(substitute(y)),deparse(substitute(z))))
	}

rgl.spheres(x01,y01,z01,.01,color=cols)
}

#and here is how you call it
library(rgl)
data(iris)

iris.pc<-prcomp(iris[,1:4],scale=T)
rgl.plot3d(iris.pc$x[,1],iris.pc$x[,2],iris.pc$x[,3]) # different colors
rgl.plot3d(iris.pc$x[,1],iris.pc$x[,2],iris.pc$x[,3],col=unclass(iris[,5])+1)

#you could also change the labels and everything else. Enjoy!

Mark W Kimpel wrote:
>
> I would like to create a 3d scatterplot that is interactive in the sense
> that I can spin it on its axes to better visualize some PCA results I
> have.
> What are the options in R? I've looked at RGL and perhaps it will suffice
> but it wasn't apparent from the documentation I found.
>
> Any demo scripts available for a package that will work?
>
> Mark
>
> --
> Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry
> Indiana University School of Medicine
>
> 15032 Hunter Court, Westfield, IN 46074
>
> (317) 490-5129 Work, & Mobile & VoiceMail
> (317) 663-0513 Home (no voice mail please)
>
> ******************************************************************
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>

-- 
View this message in context: http://www.nabble.com/interactive-rotatable-3d-scatterplot-tp17030023p17030164.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Sat 03 May 2008 - 04:16:50 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 03 May 2008 - 04:30:33 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive