It's an R FAQ -- you need print()
around it, or a ggsave()
which is particular to ggplot2.
From the FAQ:
7.22 Why do lattice/trellis graphics not work?
The most likely reason is that you forgot to tell R to display the
graph. Lattice functions such as xyplot()
create a graph object, but
do not display it (the same is true of ggplot2 graphics, and Trellis
graphics in S-Plus). The print()
method for the graph object produces
the actual display. When you use these functions interactively at the
command line, the result is automatically printed, but in source()
or
inside your own functions you will need an explicit print()
statement.