Message-ID: <BANLkTikghc7D_5AfBuLuWTOON1pg3nUbRg@mail.gmail.com>
Date: 2011-06-01T21:30:02Z
From: Joshua Wiley
Subject: Plotting from functions
In-Reply-To: <BANLkTinFHDQaXY6Em73P=Rnd737QsSitfQ@mail.gmail.com>
Hi,
Within functions, you often do need to wrap the plotting calls in
print() (you would see this if you read the FAQ).
Cheers,
Josh
On Wed, Jun 1, 2011 at 1:06 PM, Yang Zhang <yanghatespam at gmail.com> 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?
>
> ______________________________________________
> R-help at r-project.org 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.
>
--
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/