我正在尝试从bash运行R 脚本来绘制.png 图像(MacOSX10.6.8 上的 R 版本 3.0.2)。因此我正在使用命令
R CMD BATCH script.R
.
令人惊讶的是,这会生成一个 .png 文件,其中包括除 matlines 之外的所有内容。更具体地说,它绘制了一条黑色 matline,表示八个已定义(彩色)matlines 中的第一个。如果我从 bash 命令行调用R并从 R 脚本中复制/粘贴代码,则所有 matlines 都会正确绘制。
R 脚本包含以下内容:
#!/usr/bin/env Rscript
temp.table <- read.table("/path/to/firstTable.txt",
header=TRUE, sep="\t", na.strings="-999.66", dec=".",
strip.white=TRUE)
colbind <- cbind(temp.table$column1,temp.table$column2,temp.table$column3,temp.table$column4,temp.table$column5,temp.table$column6,temp.table$column7)
colbind.cor <- colbind + 4.7
time <- 1:1020
table.n <- cbind(time,colbind.cor)
colnames(table.n) <- c("time","column1","column2","column3","column4","column5","column6","column7")
para.col <- read.table("/path/to/secondTable.txt", header=TRUE, sep="\t", na.strings="-999.66", dec=",", strip.white=TRUE)
png("/path/to/plot/plot.png", width = 800, height = 400)
plot(table.n, axes=F, xlim=c(0,1020+1), ylim=c(5,40), type='l', ann=F)
par(tcl= -0.2)
axis(2, at=seq(5, 40, by=1), labels=F, lwd=1, lwd.ticks=1)
par(tcl= -0.5)
axis(2, at=seq(5, 1 + 40, by=5), labels=seq(5,40,5), lwd=0, lwd.ticks=2)
par(tcl= -0.2)
axis(1, at=seq(1, 1020, by=10), labels=F, lwd=1, lwd.ticks=1)
par(tcl= -0.5)
axis(1, at=seq(1, 1 + 1020, by=60), labels=seq(0,1020/60,1), lwd=0, lwd.ticks=2)
abline(v=(seq(0,1020,60))+1, col="lightgray", lty="dotted")
abline(h=(seq(5,40,2)), col="lightgray", lty="dotted")
title(sub="title", ylab="Temperature [°C]", xlab="time [min]")
matlines (para.col$column8, type = "l", lty = 1:1, lwd = 1, pch = NULL, col=("#00E1FF"))
matlines (table.n[,c(2,3,4,5,6,7,8)], type = "l", lty = 1:1, lwd = 1, pch = NULL, col=(c("#FF0000","#FF9D00","#A31E00","#362F2A","#B3B3B3","#F5A882","#128794")))
legend("bottomright",legend = c("column1","column2","column3","column4","column5","column6","column7","column8"), lty=c(1,1), lwd=c(2.5,2.5), col=c("#FF0000","#FF9D00","#A31E00","#362F2A","#B3B3B3","#F5A882","#00E1FF","#128794"), text.font=2, cex=0.64)
dev.off()
rm(list=ls())
我读到了有关可执行性的问题,但是在 script.R 上使用 chmod 755 或删除第一行(#!/usr/bin/env Rscript)似乎都不会改变任何东西,只是得到一个黑色的 matline。安装是通过此处的 R-3.0.2.pkg 完成的,但使用以前的版本也会出现同样的问题。
如果有任何帮助的想法,我将不胜感激!
PS:请注意,此脚本需要来自 2 个表(firstTable.txt和secondTable.txt)的外部输入。这两个表都可以在filedropper.com/firstandsecondtable以压缩 txt 文件的形式下载。