如何在同一页面上循环并生成绘图

时间:2014-11-07 22:29:42

标签: r

我有一些基因数据,我试图在每个染色体的基础上绘制。代码如下:

plot(df[which(df[,1] == "chr7"),2],p_seq[which(df[,1] == "chr7")],type="l",lty=4,xlab="Locus",ylab="Median ZScore")

数据框(称为df)的第一列中的所有染色体都标记为chr1,chr2等标记为chr22,然后标记为chrX和chrY。

我想为第1列中的所有chr执行上面的绘图,并将它们全部放在同一页面上。我会尝试循环chr和一个数字,但X chrX和Y毁了这个。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

这里有两种方法可以同时获得多个图。我使用了mtcars内置的R数据集:

# PDF file with a separate page for each plot
pdf("plots.pdf", 5,5)

# Make a separate plot of mpg vs. weight for each value of cyl
for (i in unique(mtcars$cyl)) {
  plot(mtcars$wt[mtcars$cyl==i], mtcars$mpg[mtcars$cyl==i],
       xlab=paste0(i," Cylinders"), ylab="mpg")
}
dev.off()

# PDF file with all plots on one page
pdf("plots2.pdf", 5,12)

# Put 3 plots in one column on a single page
par(mfrow=c(3,1))

# Make a separate plot of mpg vs. weight for each value of cyl
for (i in unique(mtcars$cyl)) {
  plot(mtcars$wt[mtcars$cyl==i], mtcars$mpg[mtcars$cyl==i],
       xlab=paste0(i," Cylinders"), ylab="mpg")
}
dev.off()