Good day everyone. I have a question concerning *ggobi* and *rggobi*package. I am using R version 2.13.2 and Ubuntu 11.04. I am new to ggobi and I'm reading the book *Interactive and Dynamic Graphics for Data Analysis *. The book was published 2007. My question is: how can I export a graph for *rggobi* to pdf to include it in latex. For example: I have lots of variables in ggobi and I need to export the ggplot like scatterplot of any two variables or parallel cordinates graph to a pdf. So far I've read that the authors suggests to solve it like this: library(DescribeDisplay) d <- dd_load("fig.R") plot(d) or p <- ggplot(d) print(p) which produces nice graphics which you can use with pdf() function. But neither the *DescribeDisplay* package, nor *ggplot* are available in 2.13.2. I browsed the web for solution, but I found only that ggobi_display_save_picture() could be useful for image graphs but not for pdf. I also tried save display description (tools->save display description) and then plotting it with qplot() or plot(). But all I get is a blank screen while ggobi_display_save_picture() gives a good picture. There is probably a much easier solution since R is changing and becoming more convenient to use. I i'm also including the code of the example i'm doing f.std.data<-function(x) { return((x-mean(x,na.rm=T))/sd(x,na.rm=T)) } # Read data, and standardize before running SOM d.music<-read.csv("music-sub.csv",row.names=1) d.music.std<-cbind(d.music[,c(1,2)],apply(d.music[,-c(1,2)],2,f.std.data)) # Load libraries library(rggobi) library(som) # Run SOM music.som<-som(d.music.std[,-c(1:2)],6,6,neigh="bubble",rlen=100) music.som<-som(d.music.std[,-c(1:2)],6,6,neigh="bubble",rlen=1000) # Set up data for ggobi - data needs to have any labels in the first few columns f.ggobi.som<-function(x,x.som) { xmx<-jitter(x.som$visual$x,factor=2) xmy<-jitter(x.som$visual$y,factor=2) ncols<-ncol(x) x.ggobi<-cbind(x,xmx,xmy) dimnames(x.ggobi)[[2]][ncols+1]<-"Map 1" dimnames(x.ggobi)[[2]][ncols+2]<-"Map 2" x.grid<-cbind(x.som$code,x.som$code.sum[,1:2]) dimnames(x.grid)[[2]]<-dimnames(x.ggobi)[[2]] x.clust<-rbind(x.ggobi,x.grid) } f.ggobi.som.net<-function(x.som) { x.net<-NULL for (i in 1:x.som$xdim) { for (j in 1:x.som$ydim) { if (j<x.som$ydim) x.net<-rbind(x.net,c((i-1)*x.som$xdim+j,(i-1)*x.som$xdim+j+1)) if (i<x.som$xdim) x.net<-rbind(x.net,c((i-1)*x.som$xdim+j,i*x.som$xdim+j)) } } return(x.net) } d.music.som<-f.ggobi.som(d.music.std[,-c(1,2)],music.som) d.music.som<-list(Songs=factor(c(as.character(row.names(d.music)),rep("0",36))), Artist=factor(c(as.character(d.music[,1]),rep("0",36))), Type=factor(c(as.character(d.music[,2]),rep("0",36))), LVar=d.music.som[,1],LAve=d.music.som[,2],LMax=d.music.som[,3], LFEner=d.music.som[,4],LFreq=d.music.som[,5],Map.1=d.music.som[,6], Map.2=d.music.som[,7]) gg<-ggobi(d.music.som) g<-gg[1] #load edges d.music.som.net<-f.ggobi.som.net(music.som) edges(g) <- d.music.som.net + 62 # Color points according to type of music, and som net gcolor<- rep(8,98) gcolor[d.music.som$Type=="Rock"]<-6 gcolor[d.music.som$Type=="Classical"]<-4 gcolor[d.music.som$Type=="New wave"]<-1 glyph_color(g)<-gcolor [[alternative HTML version deleted]]