[R] Plotting from functions

David Scott d.scott at auckland.ac.nz
Thu Jun 2 00:38:32 CEST 2011


  On 02/06/11 10:13, Duncan Murdoch wrote:
> 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
>
> _
qplot is from ggplot2, and is a simpler form of ggplot with limited 
features.

David Scott

-- 
_________________________________________________________________
David Scott	Department of Statistics
		The University of Auckland, PB 92019
		Auckland 1142,    NEW ZEALAND
Phone: +64 9 923 5055, or +64 9 373 7599 ext 85055
Email:	d.scott at auckland.ac.nz,  Fax: +64 9 373 7018



More information about the R-help mailing list