从R中的函数绘制到文件

KLe*_*ee1 2 plot r ggplot2

背景

嘿大家!

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

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

问题

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

p = qplot(factor(step), y, data=x, colour=c))
p = p + theme_bw()
# etc...
Run Code Online (Sandbox Code Playgroud)

将这个包裹在一个png调用周围将允许我将图输出到PNG:

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

我想把图形创建放到一个函数中,这样我就可以创建图形和随后的单独PNG.所以我把所有东西放到一个函数中:

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

如果我调用了func()一个PNG,那么它就是空的.有什么特殊原因可以在没有函数的情况下执行此操作,但是当我从函数中调用它时却无法执行此操作吗?

Jos*_*ien 7

当使用ggplot2lattice非交互(即不是在命令行),你需要明确print()画出你已经构造.所以只需要print(p)在代码的最后一行,所有都应该没问题.

这是不直观的,它是所有常见问题解答中最常见的一个.

  • 我会用`?ggsave` (3认同)