R使用par(new = T)绘制多个系列 - 轴标签相互重叠,使得绘图不可读

时间:2014-10-25 20:59:38

标签: r plot par

我正在绘制多个数据系列。

colos=c('red','green','purple','pink','brown')
par(new=F)
for (i in 1:5)
{
  plot(dat[[i+1]],col=colos[i],cex=marksize,xlab='Reading #',ylab = 'Current')
  par(new=T)
}

我的情节如下:R plot with bad axis labeling

有没有办法可以在每次迭代时覆盖绘图轴,但不能覆盖绘制的点?

2 个答案:

答案 0 :(得分:2)

您可能希望使用linespoints功能代替。这是我通常如何解决这个问题的一个例子。这样,您只能在现有绘图的顶部覆盖点,而不是将一个绘图绘制在另一个绘图之上。

使用原始plot来电绘制第一个,然后使用lapply覆盖其他列的点。

set.seed(1)
dat <- data.frame(replicate(5, sample(10)))
colos <- c('red','green','purple','pink','brown')
plot(dat[[1]], col = colos[1], xlab = 'Reading #',   
     ylab = 'Current', ylim = range(as.matrix(dat)))
invisible(lapply(2:ncol(dat), function(i) points(dat[[i]], col = colos[i])))

enter image description here

答案 1 :(得分:1)

使用xaxtyaxt

关闭轴

E.g:

plot(1:10)
par(new=TRUE)
plot(1:10, rnorm(10), xaxt="n", yaxt="n", xlab="", ylab="", type="l")
axis(side=4)

enter image description here