https://stat.ethz.ch/pipermail/r-devel/2013-September/067563.html

Same instructions still apply -- this is a self-subscription list. 

M

On Sep 24, 2013, at 0:42, Eric Malitz <eric.mal...@gmail.com> wrote:

> take me off here
> 
> 
> On Mon, Sep 23, 2013 at 10:31 PM, Gabriel Becker <gmbec...@ucdavis.edu>wrote:
> 
>> Paul,
>> 
>> Thanks for the response.
>> 
>> 
>> On Mon, Sep 23, 2013 at 7:43 PM, Paul Murrell <p...@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
>>> p...@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]]
>> 
>> 
>> ______________________________________________
>> R-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
>    [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to