从R中的函数绘制到文件

时间:2012-01-24 20:15:29

标签: r plot ggplot2

背景

嘿大家!

我是使用R的新手,并且在让团队成员提供有关它在学术环境中的实用性的教程之后开始使用它。

我正在尝试编写一个脚本来自动从多个文件中读取数据,然后将结果图形绘制到多个文件中,以便可以轻松地将它们添加到手稿中(PowerPoint,乳胶等)

问题

我发现以下代码将允许我生成图表

p = qplot(factor(step), y, data=x, colour=c))
p = p + theme_bw()
# etc...

围绕png调用包裹这将允许我将图输出到PNG:

png("test.png")
p = qplot(factor(step), y, data=x, colour=c))
p = p + theme_bw()
# etc...
p
dev.off()

我想将图形创建放入一个函数中,以便我可以创建图形和随后的单独PNG。所以我把所有东西都放到了一个函数中:

func <- function()
{
    png("test.png")
    p = qplot(factor(step), y, data=x, colour=c))
    p = p + theme_bw()
    # etc...
    p
    dev.off()
}

如果我致电func(),则会创建一个PNG,但它是空的。有没有具体的理由说明为什么我可以在没有函数的情况下执行此操作但是当我从函数中调用它时却无法执行此操作?

1 个答案:

答案 0 :(得分:7)

非交互式地使用ggplot2lattice时(即不是来自命令行),您需要明确print()绘制您构建的图。所以只需在代码的最后一行中print(p),一切都应该没问题。

这是不够直观的,它是所有FAQs中最常见的之一。