[R] 4 dimensional graphics

Petr PIKAL petr.pikal at precheza.cz
Fri Jan 11 08:15:08 CET 2008


Thanks to all who replied. I will check all suggestions to see what is the 
best one in respect of readability. 
Suggestion of using LSD monitor from Alberto is quite attracting however I 
am not sure if legal :-)

Thank you again and best regards.

Petr
petr.pikal at precheza.cz

jiho <jo.irisson at gmail.com> napsal dne 10.01.2008 18:46:12:

> 
> On 2008-January-10  , at 17:41 , Petr PIKAL wrote:
> > Thank you
> >
> > Basically I have a rectangular space (like an aquarium) in which I 
> > made
> > some analysis.
> > I can make
> >
> > image(lat, long, value) for each height but what I dream about is to 
> > make
> > something like scatterplot3d(lat, long, height) with points set 
> > according
> > to a value.
> >
> > Up to now i can do
> >
> > scatterplot3d(sloupecn, radan, vrstvan, color=as.numeric(cut(value, 
> > c(0,
> > 100, 400, 1000))))
> >
> > which will give you green and red points in upper right corner. I 
> > started
> > to try to make cex.symbols scaled according to value too but up to 
> > now I
> > did not manage to work correctly.
> >
> > in
> >
> > scatterplot3d(sloupecn, radan, vrstvan, cex.symbols = value/ 
> > max(value)+2,
> > color=as.numeric(cut(value, c(0, 100, 400, 1000))))
> >
> > the biggest points are at other places then I expected.
> 
> so you have measures at x,y,z points basically. and your measures 
> appear to be on z layers so you can probably make several x,y plots 
> with point size according to value, stacked on top of each other or 
> side by side. one liner ggplots:
> 
> A=read.table("petr.txt",header=T)
> library("ggplot2")
> # stacked
> ggplot(A,aes(x=x,y=y)) + geom_point(aes(size=value, colour=factor(z))) 
> + scale_size(to=c(0,10)) + scale_colour_hue(alpha=0.3)
> # side by side
> ggplot(A,aes(x=x,y=y)) + geom_point(aes(size=value)) + 
> scale_size(to=c(0,10)) +facet_grid(z~.)
> 
> if you want 3d to explore your data, rgl (in which you can rotate 
> plots etc) is probably the best choice
> 
> # 3D with rgl
> library("rgl")
> open3d()
> spheres3d(A$x,A$y,A$z,A$value/1000) 
> # NB. scaling your value is necessary since the values are so big 
> compared to the coordinates
> axes3d()
> 
> hope that helps.
> 
> petr.txt:
> 
> x y z value
> 1       4       1       73.8
> 1       4       9       54.9
> 1       4       17      72
> 1       1       1       96
> 1       1       9       52.1
> 1       1       17      53.3
> 4       4       1       58.4
> 4       4       9       93.5
> 4       4       17      140.2
> 4       1       1       90.3
> 4       1       9       36.5
> 4       1       17      55.1
> 7       4       1       169.1
> 7       4       9       718
> 7       4       17      813
> 7       1       1       73.4
> 7       1       9       46.5
> 7       1       17      205
> 
> 
> JiHO
> ---
> http://jo.irisson.free.fr/
> 
>




More information about the R-help mailing list