在R命令行界面程序中使用plot()

时间:2018-03-26 23:26:05

标签: r

我在尝试使用R创建命令行界面程序时遇到了障碍。目标是加载文件(将以下内容复制为finances.csv):

"date","investpercent","expenses","savings","low","high","objective"
"2011-12-01",32,17000,20000,25978,20000,4763
"2012-08-01",31,31100,31100,35881,23892,6372
"2013-09-20",31,31100,47172,76174,27261,6372

然后从它打印一个图,但不是在R环境中打印,而是直接从命令行,尝试代码(将setwd修复到正确的路径):

#! /usr/bin/Rscript
setwd(".")
data <- read.csv("finances.csv", stringsAsFactors = FALSE)
plot(type="l",as.Date(data$date, format = "%Y-%m-%d"),data$low,col="red")
lines(as.Date(data$date, format = "%Y-%m-%d"),data$high,col="green")
exit()

以上内容不会在新窗口中打印图表。

  • 如何使plot()与Rscript一起玩得很好?

1 个答案:

答案 0 :(得分:1)

我认为你将“互动行为”与“脚本行为”混为一谈。如果从命令行运行此窗口,则没有交互式绘图窗口。

如果您处于交互模式(并且hash-bang未激活),那么您将带有source(filename) - 函数的可执行.R文件。

另一方面,如果您从命令行将其作为可执行文件运行,那么您将打开(并且不要忘记关闭)面向文件的图形设备,如下所示:

data <- read.csv("finances.csv", stringsAsFactors = FALSE)

png()  # default name is Rplot.png but you could choose something else
  plot(type="l",as.Date(data$date, format = "%Y-%m-%d"),data$low,col="red")
  lines(as.Date(data$date, format = "%Y-%m-%d"),data$high,col="green")
dev.off()

exit()

您可以在?Devices帮助页面找到更多详细信息。