[R] scatterplot3d with categorical data
Geoff Russell
geoffrey.russell at gmail.com
Sun Jan 27 03:21:29 CET 2008
On Jan 26, 2008 11:23 PM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>
> On 26/01/2008 5:24 AM, Geoff Russell wrote:
> > Dear users,
> >
> > I'm trying to produce a 3d bar plot but the x and y dimensions have categorical
> > data -- so I only want 3 points on each axis. So I try:
> >
> >
> > require(scatterplot3d)
> >
> > mymat<-data.frame(
> > x=c(1,1,1,2,2,2,3,3,3),
> > y=c(1,2,3,1,2,3,1,2,3),
> > z=c(1,2,3,4,5,6,7,8,9))
> > scatterplot3d(mymat,
> > type="h", lwd=5, pch=" ",
> > xlab="xlabel", ylab="ylabel", zlab="zlabel",
> > xlim=c(1,3), ylim=c(1,3),
> > lab=c(3,3),
> > x.ticklabs=c("Low","Medium","High"), y.ticklabs=c("Green","Blue","Black"),
> > main="My Bar Plot")
> >
> > But I still get x ticks at 1, 1.5, 2, 2.5, 3 on both x and y axes. I
> > thought lab
> > controlled this (according to the documentation).
> >
> > What am I doing wrong, or is there some restriction on the way the
> > function works?
>
> I don't know the answer about scatterplot3d, but you can get
> approximately what you want with the rgl package using
>
>
> plot3d(mymat,
> type="h",
> xlab="xlabel", ylab="ylabel", zlab="zlabel",
> xlim=c(1,3), ylim=c(1,3),
> size=5,
> axes=FALSE,
> main="My Bar Plot")
>
> axis3d("x", at=1:3, labels=c("Low","Medium","High"))
> axis3d("y", at=1:3, labels=c("Green","Blue","Black"))
> grid3d("z", n=3)
I couldn't install rgl due to the following problems:
g++ -I/usr/local/lib/R/include -I/usr/local/lib/R/include -DHAVE_PNG_H
-Iext -I/usr/local/include -fPIC -c par3d.cpp -o par3d.o
par3d.cpp: In function 'void Specify(const char*, SEXPREC*)':
par3d.cpp:128: error: invalid conversion from 'const char*' to 'char*'
par3d.cpp:128: error: initialising argument 1 of 'Rboolean
Rf_psmatch(char*, char*, Rboolean)'
par3d.cpp:135: error: invalid conversion from 'const char*' to 'char*'
par3d.cpp:135: error: initialising argument 1 of 'Rboolean
Rf_psmatch(char*, char*, Rboolean)'
make: *** [par3d.o] Error 1
chmod: cannot access `/usr/local/lib/R/library/rgl/libs/*': No such
file or directory
ERROR: compilation failed for package 'rgl'
But Uwe's suggestion with scatterplot3d gives a better result than I had. But I
might use multiple 2d plots instead.
Many thanks,
Geoff.
>
> You might prefer to change the mouse controls to
>
> par3d(mouseMode=c("zAxis","zoom","fov"))
>
> so that the main mouse button does rotation about the vertical axis,
> rather than completely general rotation.
>
> Duncan Murdoch
>
>
--
6 Fifth Ave,
St Morris, S.A. 5068
Australia
Ph: 041 8805 184 / 08 8332 5069
More information about the R-help
mailing list