[R] Q: obtaining non-transparent background in png

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Jul 31 20:20:38 CEST 2007


You are *copying* the plot, and that means copying the background too (it
*is* part of the plot).  Almost certainly the plot you are copying had a
transparent background: that is the default for X11.

All the confusion seems to be over misreadings of this.


On Tue, 31 Jul 2007, Gavin Simpson wrote:

> On Tue, 2007-07-31 at 10:22 -0600, D. R. Evans wrote:
>> I am not understanding something about generating PNG plots.
>>
>> I have tried several ways to obtain something other than a transparent
>> background, but nothing I've done seems to change the background.
>>
>> For example:
>>
>> dev.print(png, width=800, height=600, bg='red', filename='example.png')
>>
>> which I thought would give a red background, simply gives the same
>> transparent background I always get.
>
> ?dev.print says:
>
>     'dev.print' copies the graphics contents of the current device to
>     a new device which has been created by the function specified by
>     'device' and then shuts the new device.
>
> Note "copies" - given that you've already drawn a figure with a white
> background, should this then produce one that is red? However, you are
> correct that it does produce a plot with a transparent background.
>
> I find it easier to wrap my plotting commands in the relevant device,
> e.g. this works with the desired background:
>
>> png("mypng.png", height = 400, width = 400, bg = "red",
>      pointsize = 12)
>> plot(1:10)
>> dev.off()
>
> Whereas these do not give "red" backgrounds as one might have expected,
> but transparent ones:
>
>> plot(1:10)
>> dev.print(png, height = 400, width = 400, bg = "red", pointsize = 12,
>            filename = "mypng2.png")
> X11
>  2
>> dev.copy(png, height = 400, width = 400, bg = "red", pointsize = 12,
>           filename = "mypng3.png")
> PNG
>  3
>> dev.off()
> X11
>  2
>
> Not sure whether this is as intentional or not, but it does not appear
> to be passing the bg argument on to the 'device', or if it does, it is
> not being used/respected - perhaps all that is need is clarification as
> to what can be specified in '...' in ?dev.print
>
>> version
>               _
> platform       i686-pc-linux-gnu
> arch           i686
> os             linux-gnu
> system         i686, linux-gnu
> status         Patched
> major          2
> minor          5.1
> year           2007
> month          07
> day            05
> svn rev        42131
> language       R
> version.string R version 2.5.1 Patched (2007-07-05 r42131)
>
> G
>
>>
>> And I also don't understand why the default background is transparent,
>> when the documentation seems to say that it's white:
>>   png(filename = "Rplot%03d.png", width = 480, height = 480,
>>          pointsize = 12, bg = "white",  res = NA,...)
>>
>> (This is on a Kubuntu dapper 64-bit system.)
>>
>> [I looked through the mail archives, and there seem to be a few very
>> old postings talking about the opposite problem, but nothing recent;
>> so I conclude that I'm doing something wrong.]
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch mailing list
>> 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.
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list