【问题标题】:Using plot() in R command line interface program在 R 命令行界面程序中使用 plot()
【发布时间】:2018-03-26 23:26:05
【问题描述】:

我在尝试使用 R 创建命令行界面程序时遇到了障碍。目标是加载文件(将以下文件复制为财务.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 配合得很好?

【问题讨论】:

    标签: r


    【解决方案1】:

    我认为您将“交互行为”与“脚本行为”混淆了。如果您从命令行运行它,则没有交互式绘图窗口。

    如果您处于交互模式(并且 hash-bang 未激活),那么您将使用 source(filename)-function 引入一个可执行的 .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 帮助页面找到更多详细信息。

    【讨论】:

    • 有没有办法用X11打开它,并让它保持打开状态?它只会持续一瞬间。
    • 搜索:“[r] plot window rscript”带来了一个可能的答案...“如何从 Rscript 弹出图形窗口”?
    猜你喜欢
    • 1970-01-01
    • 2010-11-23
    • 2021-06-01
    • 2017-08-04
    • 1970-01-01
    • 2016-01-18
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多