我有以下循环
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中的哪一个是正确的?这两个脚本都是正确的吗?
谢谢
最好的问候 安娜答案 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()