在函数R中,ggplot2似乎不起作用

met*_*ate 2 r ggplot2

我对R有点新鲜 - 我一直试图将R脚本包装成一个函数,所以我可以从Rserve中调用它.有谁知道为什么ggplot2不能在函数内部工作但在它之外工作得很好?

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()
Run Code Online (Sandbox Code Playgroud)

这可能与它有关ggplot2在函数或S4中使用时产生错误但是我没有得到我能检测到的错误 - 我只是没有输出.

Dir*_*tel 11

这是一个R FAQ - 你需要的 print()它,或者ggsave()ggplot2特有的.

来自FAQ:

7.22为什么格子/格子图形不起作用?

最可能的原因是你忘了告诉R显示图表.格子函数,例如xyplot()创建图形对象,但不显示它(ggplot2图形和S-Plus中的Trellis图形也是如此).print()图形对象的方法产生实际显示.在命令行以交互方式使用这些函数时,结果会自动打印,但在source()您自己的函数内部或内部,您将需要一个明确的print()语句.