在R中禁用GUI,图形设备

时间:2010-07-26 23:08:26

标签: r

是否有一种简单的方法来转换R中的所有GUI元素并仅从OSX上的命令行运行它?

我正在尝试在我的OSX机器上复制远程linux终端的行为。因此plot()应该只保存一个文件,CRAN镜像选择之类的东西应该是文本,而不是Tk接口。我无法找到设置此行为的位置。

4 个答案:

答案 0 :(得分:4)

我有这个确切的问题,希望有一种方法可以在不改变现有代码的情况下完成。我通常运行图形支持,但有时我会在服务器上运行一个脚本来获取更大的数据集,然后我只想让这些图自动输出到某个地方。

在Dirk的回答中,Ian Fellows给出了简单的解决方案。在R类型的命令行中:

options(device=pdf)

然后任何绘图都将直接写入当前的Rplots.pdf文件。

如果您想完全不绘制文件,请使用

options(device=NULL)

答案 1 :(得分:3)

对于图表,您可以使用pdf()命令(或png(),jpeg()...)将输出定向到文件。

答案 2 :(得分:1)

我没有OS X框,但您是否尝试取消设置X11环境变量DISPLAY:

  

DISPLAY =“”R --vanilla

当我在Linux上执行此操作并查询R capabilties()时,x11会根据需要显示为FALSE。

答案 3 :(得分:0)

我没有运行OSX,但您可以尝试从终端应用程序而不是Mac OSX启动程序运行R,并查看是否按需运行。

Matti写道,您可以使用以下命令将输出发送到文件;但我不知道这是否真的是你问题的实质内容。

png("pngfile.png")
plot(foo)
title(main="bar")
dev.off()

因此,输出不是石英图形对象,而是输出到文件。

同样,您可以将终端中通常出现的内容输出到文件中。

sink("foo.file")