ggplot2 does not appear to work when inside a function R [duplicate]
I'm a bit new to R - I've been trying to wrap an R script as a function so I can call it from Rserve. Does anyone know why ggplot2 would not work inside a function yet works just fine outside of it?
png('polarity.png')
ggplot(sent_df, aes(x=polarity)) +
geom_bar(aes(y=..count.., fill=polarity)) +
scale_fill_brewer(palette="RdGy") +
labs(x="polarity categories", y="number of conversatins") +
opts(title = "Sentiment Analysis of Posts on Facebook\n(classification by polarity)",
plot.title = theme_text(size=12))
dev.off()
This may have something to do with it ggplot2 produces error when used in function or S4 but I'm not getting an error that I can detect - I just get no output.
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). Theprint()
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 insource()
or inside your own functions you will need an explicitprint()
statement.