Re: [Rd] Sweave support added to rgl package

From: Dominick Samperi <djsamperi_at_gmail.com>
Date: Wed, 20 Apr 2011 19:10:20 -0400

On Wed, Apr 20, 2011 at 2:29 PM, Duncan Murdoch <murdoch.duncan_at_gmail.com> wrote:

> On 20/04/2011 1:52 PM, Dominick Samperi wrote:

>>
>> On Tue, Apr 19, 2011 at 2:18 PM, Duncan Murdoch
>> <murdoch.duncan_at_gmail.com>  wrote:
>> >  I have just committed some code to the rgl package on
>> >  https://r-forge.r-project.org/projects/rgl/ to allow rgl images to be
>> >  inserted into Sweave documents.  (This is not in the CRAN version yet.)
>> >  It
>> >  makes use of the custom graphics driver support added by Brian Ripley.
>> >
>> >  In R-devel (which will become R 2.14.0 next spring in New Zealand, next
>> > fall
>> >  in most other places), usage is quite straightforward.  For
>> >  example, code like this in a Sweave document:
>> >
>> >  <<fig=true, grdevice=rgl.Sweave, pdf=false, stayopen=TRUE>>=
>> >  x<- rnorm(100); y<- rnorm(100); z<- rnorm(100)
>> >  plot3d(x, y, z)
>> >  @
>> >
>> >  will insert a .png snapshot of the figure.  Because that chunk has
>> >  "stayopen=TRUE", it can be followed by another chunk to add
>> >  to the figure, e.g.
>> >
>> >  <<fig=true, grdevice=rgl.Sweave, pdf=false>>=
>> >  lines3d(x[1:10], y[1:10], z[1:10], col="red")
>> >  @
>> >
>> >  All of this is possible in R 2.13.0, but it takes more work:  see the
>> >  ?rgl.Sweave help page.
>> >
>> >  I will eventually add postscript and PDF output options as well, and
>> > perhaps
>> >  some support for the LaTeX movie15 package, but those are not there
>> > yet.
>> >    Comments or bug reports are welcome.
>> >
>> >  Duncan Murdoch
>>
>> I inserted your example into testrgl.Rnw under R 2.13.0, with
>> Sweave.snapshot()
>> at the end of both chunks, but things did not work as expected.
>>
>> I used:
>> $ R CMD Sweave testrgl.Rnw
>> $ pdflatex tesetrgl
>> (view testrgl.pdf)
>>
>> When R CMD Sweave is run the graphics is displayed interactively.
>
> That's unavoidable as far as I know.  I don't think there's a general
> purpose way to tell OpenGL to render in the background, so it works by
> rendering on screen, then copying a bitmap to the .png file.

>>
>> There is no graphics in the PDF file, even though both .png files
>> are read when pdflatex is run.
>
> Do they look okay?  One possible problem is that you may have asked for a
> bitmap too big for your hardware to render, in which case those png files
> will end up with junk (probably blank).  Setting resolution=100 in the chunk
> headers will do it more coarsely.  (The default is 300 dpi.)  The same
> effect comes from width=1, height=1  (or some other small numbers).
>
> Duncan Murdoch
>

The resolution=100 tip fixed the problem, thanks. Now I see the snapshots in the PDF file. Using this in a package will certainly change the user experience,
but it moves away from the traditional batch-oriented R package processing, it seems to me.

The idea of adding support for movies and 3D graphics to Sweave/PDF files sounds very interesting and revolutionary.

Dominick



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Wed 20 Apr 2011 - 23:11:57 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 21 Apr 2011 - 07:00:50 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive