如何将这两个散点图放在同一个图上进行比较?

时间:2012-06-12 18:43:23

标签: r scatter-plot

现在我正在使用的R片段是:

a <- read.table('A.out')
a <- cbind(1:nrow(a), a)
colnames(a) <- c('Observation','Time')

med.a <- median(a$Time)
plot(a$Observation, a$Time, xaxt="n", yaxt="n", xlab="",
     ylab="", type="b", col="red", pch=19)
abline(med.a,0, col='red', lty=2)
grid(col='darkgray', lty=1)

#Overlay Someone else
b <- read.table('B.out')
b <- cbind(1:nrow(b), b)
colnames(b) <- c('Observation','Time')

par(new=TRUE)
med.b <- median(b$Time)
plot(b$Observation, b$Time, xaxt="n", ylab="units", type="b", col="blue", pch=19)
abline(med.b,0, col='blue', lty=2)

但这并不能解释规模上的差异。 (即使即使A.out值远大于B.out值,它们也会以相同的y尺度显示。我如何得到所需的效果才能比较它们?)

以下是我的A.out和B.out的内容:

> a
  Observation     Time
1           1 11758000
2           2 10523000
3           3 10306000
> b
  Observation         Time
1           1 133721740000
2           2 133759475000
3           3 133724604000

2 个答案:

答案 0 :(得分:4)

您正在拨打plot两次。每个调用都会建立一个新的坐标系。相反,使用一次调用plot来设置轴和坐标系,然后使用lines绘制实际点:

xrange <- range(c(a$Observation, b$Observation))
yrange <- range(c(a$Time, b$Time))
plot(0, type="n", xlim=xrange, ylim=yrange)
lines(a$Observation, a$Time, type="b", col="red", pch=19)
lines(b$Observation, b$Time, type="b", col="blue", pch=19)

从这里开始,您应该可以根据需要添加其他内容,例如中线,轴标签等。

答案 1 :(得分:0)

你应该在两个情节调用中添加这个:

  ..., xlim=range(c( a$Observation, b$Observation )), 
       ylim= range(c( a$Time, b$Time )),  ...