Paul,

Thanks for the response.


On Mon, Sep 23, 2013 at 7:43 PM, Paul Murrell <paul@stat.auckland.ac.nz>wrote:

> <snip>
> par(bg="white")
>
> plot(1:10)
> recplot = recordPlot()
> png("bgreplay.png")
> replayPlot(recplot)
> dev.off()
>
> Would that satisfy your use case ?
>

Unfortunately it does not, as my use-case is in a caching/dynamic document
setting. Thus I am capturing plotting from evaluation of an arbitrary piece
of code within a series of such evaluations. I cannot be guaranteed the
code doesn't call dev.off() or explicitly create a new device and I
wouldn't want to clobber any non-white background set in previous code.

I thought putting par(bg="white") after the call to png() (or bg="white" in
the png call) might work, but it appears that replayPlot is actively
setting the background to transparent so that didn't fly.

Any other ideas or advice would be appreciated.
~G


>
> Paul
>
>
> On 09/14/13 09:17, Gabriel Becker wrote:
>
>> Hey all,
>>
>> I've run accross what seems to be a bug in the recordPlot/replayPlot
>> functionality (or at least the lack of a feature which seems pretty
>> reasonable to expect to be there)
>>
>> When drawing to a file-based graphics device (I tested with png()), the
>> file resulting from calling replayPlot on a recordedplot object does not
>> contain an identical image to that captured by the same graphics device
>> when used on the plot that was recorded.
>>
>> Reproducible (at least for me on linux) example:
>>
>> png("noreplay.png")
>> plot(1:10)
>> dev.off()
>>
>> plot(1:10)
>> recplot = recordPlot()
>> png("withreplay.png")
>> replayPlot(recplot)
>> dev.off()
>>
>> The resulting png files are attached. You'll notice that the noreplay.png
>> has the expected white background, while withoutreplay.png has no/a
>> transparent background.
>>
>> This seems likely to be related to the note in ?dev.print :
>> "
>>   Note that these functions copy the _device region_ and not a plot:
>>       the background colour of the device surface is part of what is
>>       copied.  Most screen devices default to a transparent background,
>>       which is probably not what is needed when copying to a device such
>>       as ‘png’.
>> "
>>
>> Now this may be as intended because it is "not allowed" to draw
>> recordedplot objects to devices other than the one they were recorded on
>> (AFAIK the primary purpose of recordedplot objects is fast redraws
>> internally), but alas that is what my use-case calls for. Furthermore,  I
>> don't think I'm alone in thinking wistfully about how useful it would be
>> to
>> have an actual, transportable object class which can fully represent an R
>> plot in any R-based context.
>>
>> I'm pretty sure I can compile a patch which does this if it would be
>> considered, though there would be a delay of a week or two before I could
>> burrow out from under the mound of other stuff I currently need to be
>> doing
>>
>> sessionInfo below, and I have also confirmed that the behavior remains
>> unchanged in the current trunk.
>>
>> Thanks,
>> ~G
>>
>>  sessionInfo()
>>>
>> R version 3.0.1 (2013-05-16)
>> Platform: x86_64-pc-linux-gnu (64-bit)
>>
>> locale:
>>   [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>>   [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>>   [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
>>   [7] LC_PAPER=C                 LC_NAME=C
>>   [9] LC_ADDRESS=C               LC_TELEPHONE=C
>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>>
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>
>> loaded via a namespace (and not attached):
>> [1] compiler_3.0.1 tools_3.0.1
>>
>>
>>
>> ______________________________**________________
>> R-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/**listinfo/r-devel<https://stat.ethz.ch/mailman/listinfo/r-devel>
>>
>>
> --
> Dr Paul Murrell
> Department of Statistics
> The University of Auckland
> Private Bag 92019
> Auckland
> New Zealand
> 64 9 3737599 x85392
> paul@stat.auckland.ac.nz
> http://www.stat.auckland.ac.**nz/~paul/<http://www.stat.auckland.ac.nz/~paul/>
>



-- 
Gabriel Becker
Graduate Student
Statistics Department
University of California, Davis

	[[alternative HTML version deleted]]

