Rscript正在绘制PDF格式

时间:2011-08-11 10:43:50

标签: r scripting

我有一个简单的R脚本。当它通过Rscript.exe运行时,默认情况下它正在绘制为PDF文件。我希望脚本打开一个绘图窗口。

我使用命令:

Rscript.exe tmp_plot.R

r file tmp_plot.R包含:

x <- 1:10
y <- sin(x)
plot(x,y)

3 个答案:

答案 0 :(得分:18)

您正在以非交互方式运行R - Rscript用于脚本 - 因此默认绘图设备为pdf(),而不是x11()或您的操作系统默认设置(windows()从它的外观)。然而,打开替代设备是微不足道的;使用x11()windows()。在尝试编写将在屏幕上显示绘图的脚本时遇到的问题是,在显示的示例代码中,脚本在绘制绘图时立即终止,无论是在屏幕上还是在pdf()设备上显示。最好使用Sys.sleep()来暂停,例如:

x <- 1:10
y <- sin(x)
x11() ## or windows()
plot(x,y)
Sys.sleep(10)

我认为你这是错误的做法。如果你想在运行R“脚本”时想要交互性,我指的是一组执行某些分析的R语句,你最好在你的操作系统上获得一个编辑器/ IDE,它允许你逐步完成脚本或者一次代码块,加上与正在运行的R会话交互。我使用Emacs和ESS扩展。您可以将Tinn-R或RStudio视为替代品。

Rscript用于运行不需要人工干预或干预的脚本或类似批处理的作业。

答案 1 :(得分:5)

library(tcltk)  # for message box and thus hold-open functionality

x11()  # for Linux, see documentation for other operating systems

# first plot
# second plot

# hold-open functionality prevents script from exiting user acts
prompt  <- "hit spacebar to close plots"
extra   <- "some extra comment"
capture <- tk_messageBox(message = prompt, detail = extra)

如果你不喜欢规定的计时器的想法,上面的脚本只会在用户按键(空格键或输入)或鼠标点击(OK按钮)时退出。

答案 2 :(得分:0)

使用Windows,我编写了一个批处理脚本来解决此问题,该脚本在脚本上调用Rscript,然后立即打开生成的PDF。

@echo off
rscript myscript.r
Rplots.pdf

尽管这种解决方案很荒谬,但这正是我所需要的,它只是即时查看绘制的数据。