[R] Plotting from functions

Duncan Murdoch murdoch.duncan at gmail.com
Thu Jun 2 00:13:42 CEST 2011


On 01/06/2011 4:06 PM, Yang Zhang wrote:
> On Wed, Jun 1, 2011 at 1:04 PM, Yang Zhang<yanghatespam at gmail.com>  wrote:
>> I can plot to png's fine when i run this directly from the top-level
>> script/console:
>>
>> png('diamonds.png');qplot(carat,price,data=diamonds);dev.off()
>>
>> But for some reason it's not working when that's in a function:
>>
>> (function(){png('diamonds.png');qplot(carat,price,data=diamonds);dev.off()})()
>>
>> I suspect this is because the qplot's return value must be "returned"
>> to the top-level, because this works:
>>
>> (function(){png('diamonds.png');qplot(carat,price,data=diamonds)})();dev.off()
>>
>> Any hints on how I can plot from within a function?  Thanks in advance.
>>
>
> Actually, just found that things work if I do:
>
> print(qplot(...))
>
> Is this just what you need to do to plot from within functions?
>

If the plotting function is using grid graphics you do.  I don't know 
where the qplot() function is from, but it looks as though it must be 
from a package that uses grid.

Duncan Murdoch



More information about the R-help mailing list