[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