我想使用par(mfrow = c(2,2))做4个图的数字。我已经设法在一个循环中做到这一点。但是 - 下一步是在每个“子图”中添加第二个参数(时间序列)。结果应为4个图,每个时间序列有两个不同的颜色。我不能让这个工作!我的结果是4个图,只有最后一个时间序列(深度)。我试过par(new = true),但它不起作用。请帮助任何人?
toplot <- cbind(ox_s, AOU, ox_sat, o2) # My data, 4 parameters
D = c(40,50) # 2 depths I want to plot the data from
nr_col = length(D)
myColorMap = rainbow(nr_col) # to use different colours for different depths
par(mfrow=c(2,2)) # setting up 4 plots
for (j in 1:length(D)){ # looping over depths
index = which(my_depth == D[j]) # finding rows for my depths
for (k in 1:ncol(toplot)){ # looping over parameters
plot(as.Date(my_time[index]),toplot[index,k], type = "b",
xlim = range(st,en),col = myColorMap[j])
}
}
答案 0 :(得分:0)
你能扭转循环的顺序吗?即为第一个绘图做两个部分(绘图,然后使用lines
或points
添加到绘图中),然后移动到第二个绘图,等等。这可能是最简单的。
另一个选项,如果你觉得你真的需要先做所有的初始图,然后回去添加它们,就是在每个图之后保存图形参数,然后第二次使用par(mfg=...
来重新选择一个图,将图形参数重置为它们,然后添加到图中。
您可能还想查看matplot
函数或检查ggplot2或晶格包,以了解在图中使用多行创建多面图的其他方法。