[R] Print plot to pdf, jpg or any other format when using scatter3d error

Duncan Murdoch murdoch.duncan at gmail.com
Wed Jan 5 13:54:31 CET 2011


On 11-01-04 5:36 PM, Jurica Seva wrote:
> Thank you, Duncan, it works now with rgl.snapshot (i did have to upgrade
> to 2.12.1). Is there any way to manipulate the size of the created
> image? The created plots are a bit small (256*256)

Sure, they're the size of the window:  it's just a snapshot.  Just make 
it bigger (by mouse, or using par3d(windowRect= ...)) before taking the 
snapshot.

Duncan Murdoch

>
> Thank you for your help once again :)
>
> Best,
> Jurica
>
> On Tue, Jan 4, 2011 at 8:31 AM, Duncan Murdoch <murdoch.duncan at gmail.com
> <mailto:murdoch.duncan at gmail.com>> wrote:
>
>     On 03/01/2011 8:17 PM, Jurica Seva wrote:
>
>         Hi,
>
>         I have been trying to output my graphs to a file (jpeg, pdf, ps, it
>         doesnt matter) but i cant seem to be able to get it to output.
>
>
>
>     As Uwe said, you are using rgl graphics, not base graphics.  So none
>     of the standard devices work, you need to use the tools built into
>     rgl.  Attach that package, and then read ?rgl.postscript (for
>     graphics in various vector formats, not just Postscript) and
>     ?rgl.snapshot (for bitmapped graphics).
>
>     Some notes:
>       - For a while rgl.snapshot wasn't working in the Windows builds
>     with R 2.12.1; that is now fixed, so you should update rgl before
>     getting frustrated.
>       - rgl.snapshot just takes a copy of the graphics buffer that is
>     showing on screen, so it is limited to the size you can display
>       - rgl.postscript does a better job for the parts of an image that
>     it can handle, but it is not a perfect OpenGL emulator, so it
>     doesn't always include all components of a graph properly.
>
>     Duncan Murdoch
>
>           I tried a
>         few things but none of them worked and am lost as what to do
>         now. I am
>         using the scatter3d function, and it prints out the graphs on tot he
>         screen without any problems, but when it comes to writing them
>         to a file
>         i cant make it work. Is there any other way of producing
>         3dimensional
>         graphs (they dont have to be rotatable/interactive after the
>         print out)?
>
>         The code is fairly simple and is listed down :
>
>         #libraries
>         library(RMySQL)
>         library(rgl)
>         library(scatterplot3d)
>         library(Rcmdr)
>
>         ##############################################################################
>         #database connection
>         mycon<- dbConnect(MySQL(),
>         user='root',dbname='test',host='localhost',password='')
>         #distinct sessions
>         rsSessionsU01<- dbSendQuery(mycon, "select distinct sessionID from
>         actiontimes where userID = 'ID01'")
>         sessionU01<-fetch(rsSessionsU01)
>         sessionU01[2,]
>
>         #user01 data
>         mycon<- dbConnect(MySQL(),
>         user='root',dbname='test',host='localhost',password='')
>         rsUser01<- dbSendQuery(mycon, "select
>         a.userID,a.sessionID,a.actionTaken,a.timelineMSEC,a.durationMSEC,b.X,b.Y,b.Rel__dist_,b.Total_dist_
>         from `actiontimes` as a , `ulogdata` as b where a.originalRECNO =
>         b.RECNO and a.userID='ID01'")
>         user01<- fetch(rsUser01, n= -1)
>         user01[1,1]
>
>         #plot loop
>
>         for (i in 1:10){
>
>               userSubset<-subset(user01,sessionID ==
>         sessionU01[i,],select=c(timelineMSEC,X,Y))
>               userSubset
>               x<-as.numeric(userSubset$X)
>               y<-as.numeric(userSubset$Y)
>               scatter3d(x,y,userSubset$timeline,xlim = c(0,1280), ylim =
>         c(0,1024),
>         zlim=c(0,1800000),type="h",main=sessionU01[i,],sub=sessionU01[i,])
>               tmp6=rep(".ps")
>               tmp7=paste(sessionU01[i,],tmp6,sep="")
>               tmp7
>               rgl.postscript(tmp7,"ps",drawText=FALSE)
>               #pdf(file=tmp7)
>               #dev.print(file=tmp7, device=pdf, width=600)
>               #dev.off(2)
>         }
>
>         ______________________________________________
>         R-help at r-project.org <mailto: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.
>
>
>



More information about the R-help mailing list