按循环在R中绘制图形,并将其像jpeg一样保存
我正试图通过循环绘制图表 输入数据:具有相同结尾*depth.txt的表,表中有2个以制表符分隔的列:按循环在R中绘制图形,并将其像jpeg一样保存,r,for-loop,plot,R,For Loop,Plot,我正试图通过循环绘制图表 输入数据:具有相同结尾*depth.txt的表,表中有2个以制表符分隔的列: Baba"\t"58.38 Tata"\t"68.38 Mama"\t"30.80 jaja"\t"88.65 输出:我想为所有文件的每个*depth.txt(它们的名称将与表的名称相同)获取一个带有plot()的jpeg文件(轴x将是表中的第一列,轴y将是第二列) 我创建了脚本的一部分,但不起作用: files <- list.files(path="/home/fil/Des
Baba"\t"58.38
Tata"\t"68.38
Mama"\t"30.80
jaja"\t"88.65
输出:我想为所有文件的每个*depth.txt(它们的名称将与表的名称相同)获取一个带有plot()
的jpeg文件(轴x将是表中的第一列,轴y将是第二列)
我创建了脚本的一部分,但不起作用:
files <- list.files(path="/home/fil/Desktop/", pattern="*depth.txt", full.names=T,recursive=FALSE)
for (i in 1:length(files))
plot(read.table(files[i],header=F,sep="\t")$V1,read.table(files[i],header=F,sep="\t")$V2)
dev.copy(jpeg,filename=files[i])
dev.off
文件以下内容是否符合您的要求
for (i in 1:length(files)) {
dat <- read.table(files[i], header = FALSE, sep = '\t')
jpeg(file = paste(files[i], '.jpeg', sep = ''))
plot(dat$V1, dat$V2)
dev.off()
}
for(1中的i:长度(文件)){
dat与前两个类似,但更改绘图的文件名
files <- paste("fil",1:3,"depth.txt",sep="") # example file names
for( i in 1:length(files)) {
filename <- sub(".txt",".jpg",files[i])
jpeg(file=filename)
plot(1:(10*i)) # example plots
dev.off()
}
文件重命名文件
for (i in 1:length(files)) {
file = files[i]
file = paste("jpg",file,sep="_")
jpeg(file)
plot(read.table(files[i],header=F,sep="\t")$V1,read.table(files[i],header=F,sep="\t")$V2)
dev.off()
}
尝试将循环体包含在{…}
中。我尝试过,这是个好主意,但我仍然只收到一个.jpeg,带有两个图形(第一个是Ok的,但第二个是错误的值),并且jpeg的名称也错了:-(奇怪-我不久前也尝试过类似的方法,但也没有效果。期待解决方案。当时,我只使用了par(mfrow=c(3,4))
(如果放在循环之前,将在一页上绘制所有图形,3个水平,4个垂直)然后最后保存了整个绘图…是的,它可以工作,但它重写了我的.txt文件,但输出解释是我的错。有可能创建图形而不重写吗?谢谢你的工作脚本。我看到我很接近,但我如何说我是R的初学者:-(非常感谢..亲爱的拉尔斯,谢谢你的帮助。这是唯一缺少的一个),但这不是错误。非常感谢