[R] automatically calling dev.off()

axionator axionator at gmail.com
Tue Sep 1 15:54:33 CEST 2015


I did it on the console only for testing. I have a program that uses Rserve
and would like to have it therefore. (the program basically provides a
terminal where you can type in R commands. Since plotting is only possible
via files (when using Rserve) that are then displayed in a widget, I like
to avoid the overhead of writing png() ... dev.off()  for each plot.)

On Tue, Sep 1, 2015 at 3:42 PM, Jeff Newmiller <jdnewmil at dcn.davis.ca.us>
wrote:

> Don't use options to do this in batch mode. Open and close the file as you
> make the plot.
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live
> Go...
>                                       Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> ---------------------------------------------------------------------------
> Sent from my phone. Please excuse my brevity.
>
> On September 1, 2015 4:34:41 AM PDT, axionator <axionator at gmail.com>
> wrote:
> >Hi,
> >is there a way to automatically call dev.off()?
> >I use options(device="myfunc") to automatically open a device to print
> >to.
> >Afterwards, I would like to close it (so that the file is actually
> >written).
> >I tried to do it via addTaskCallback, but unfortunately, I have to use
> >Rserve and (for any reason), the callback does not work (in the default
> >R
> >console on win7 it works, however).
> >
> >So, the following runs in the R console (but not via Rserve):
> >
> >mypng <- function(filename = "test.png", ...)
> >{
> >    times <- function(total = 2, str = "Task") {
> >        ctr <- 0
> >        function(expr, value, ok, visible) {
> >            ctr <<- ctr + 1
> >            keep.me <- (ctr < total)
> >            if (ctr == total) {
> >                cat("ENDPRINT")
> >                dev.off()
> >            }
> >            keep.me
> >        }
> >    }
> >    png(filename, ...)
> >    n <- addTaskCallback(times(1))
> >}
> >options(device="mypng")
> >plot(rnorm(333))
> >
> >Any hints?
> >
> >       [[alternative HTML version deleted]]
> >
> >______________________________________________
> >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >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.
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list