使用来自循环的所有旋转的数据创建一个pdf

时间:2012-03-14 08:29:00

标签: r pdf for-loop

我有以下循环

for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
.
.
pdf(sprintf ('anna.%s.pdf',chr), paper='a4')
plot(exp,control,xlim=c(0,400),ylim=c(0,400),pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control')
dev.off()

write.table(exp.sorted,file="list.txt",append = TRUE ,quote = FALSE,col.names =FALSE,row.names=TRUE,sep="\t")
}

使用当前代码,循环将为安娜制作24个pdf,并且每个将具有来自循环的一次旋转的数据

我需要的是只有一个anna.pdf,并且在图形中创建以添加循环的每个旋转的数据。不要删除循环每次旋转的先前数据,而只是添加来自每个循环的数据,以获得一个包含循环所有旋转数据的总图。

当我创建表并且有一个list.txt,其中循环只是添加每次旋转的数据时,我使用append = TRUE做了什么

提前谢谢

最好的问候 安娜

PS:

所以,如果我说以下是好的吗?

for (chr in c(paste('chr',seq(1,22),sep=''),'chrX','chrY')){ 
anna1<-exp
anna2<-control
 .
.
.
.
pdf('anna.pdf', paper='a4')
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
if(!PLOT){
  plot(exp,control,xlim=c(0,400),ylim=c(0,400),   
   pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control')
   PLOT <- TRUE
} else {
   lines(names(control.table), log10(control.table), col="blue")
}
legend('topright', legend=c('ChIP', 'Control'), col=c('red','blue'), lwd=1)
}
dev.off()
.
.
.
pdf('anna.enriched.pdf',paper='a4')
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
plot(exp.peaks,control.peaks,xlim=c(0,400),ylim=c(0,400),pch=20,col='black')
}
dev.off()


}

这两个pdf中的哪一个是正确的?这两个脚本都是正确的吗?

谢谢

最好的问候 安娜

1 个答案:

答案 0 :(得分:0)

您可以使用点(...)或线(...)函数将数据添加到现有图中。 因此,您必须在第一次迭代中创建绘图。

e.g。像这样的东西

PLOT <- FALSE
pdf('anna.pdf', paper='a4')
for (chr in paste('chr',c(seq(1,22),'X','Y'),sep='')){
    if(!PLOT){
      plot(exp,control,xlim=c(0,400),ylim=c(0,400),   
       pch=20,col='black',main='Tiles',xlab='exp',ylab 'Control')
       PLOT <- TRUE
    } else {
       points(exp,control, ...)
    }
}
dev.off()