[Rd] appropriate work-around for problems with a specific plot device (Rstudio)?
Milan Bouchet-Valat
nalimilan at club.fr
Fri Oct 25 11:19:44 CEST 2013
Le jeudi 24 octobre 2013 à 17:13 -0700, Skye Bender-deMoll a écrit :
> Dear r-devel-opers,
>
> I'm working on a package that does some plot-intensive work using the
> animation library. It turns out that this performs very badly in the
> RStudio plot device, which is the preferred IDE for our team. Our
> kludgy solution is to detect if the Rstudio device is running, and if
> so, open another plot device to do the rendering and close it when done:
>
> externalDevice<-FALSE
> if (!is.function(options()$device)){
> if (names(dev.cur())=="RStudioGD"){
> message("RStudio's graphics device is not well supported by ndtv,
> attempting to open another type of plot window")
> # try to open a new platform-appropriate plot window
> if (.Platform$OS.type=='windows'){
> windows()
> } else if(length(grep(R.version$platform,pattern='apple'))>0) #
> is it mac?
> {
> quartz()
> } else { # must be unix
> x11()
> }
> externalDevice<-TRUE
> }
> }
>
> [render a whole bunch of plot frames]
>
> # turn off external device if using one
> if (externalDevice){
> dev.off()
> }
>
> Although this works well for us in practice, when testing against R
> devel, we get the following NOTE:
>
>
> * checking R code for possible problems ... NOTE
> Found an obsolete/platform-specific call in the following function:
> ‘render.animation’
> Found the platform-specific devices:
> ‘quartz’ ‘windows’ ‘x11’
> dev.new() is the preferred way to open a new device, in the unlikely
> event one is needed.
>
>
> Is there a better way to resolve this situation? We can't use dev.new()
> to open the plot device, because RStudio has set the value of
> getOption("device") to "RStudioGD". Can anyone recommend an alternative
> method of generating a platform-appropriate device to open that won't
> generate R CMD check issues?
How about temporarily changing the value of the "device" option to what
you need?
I think you should also get in touch with RStudio developers to see
whether something can be done about the poor performance.
My two cents
More information about the R-devel
mailing list