Skip to content

Plotting from functions

5 messages · Yang Zhang, Joshua Wiley, Duncan Murdoch +1 more

#
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.
#
On Wed, Jun 1, 2011 at 1:04 PM, Yang Zhang <yanghatespam at gmail.com> wrote:
Actually, just found that things work if I do:

print(qplot(...))

Is this just what you need to do to plot from within functions?
#
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 01/06/2011 4:06 PM, Yang Zhang wrote:
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
#
On 02/06/11 10:13, Duncan Murdoch wrote:
qplot is from ggplot2, and is a simpler form of ggplot with limited 
features.

David Scott