3

我对 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()

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

4

1 回答 1

14

这是一个 R 常见问题解答——你需要print()它,或者ggsave()是 ggplot2 特有的。

从常见问题解答:

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

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

于 2013-06-15T17:32:20.720 回答