0

我正在收集一段时间内的数据,我想在同一个图上进行两项研究。对我来说,问题是随着时间的推移如何收集数据并将其添加到绘图中的顺序。举例来说,以下代码将同一组随机值绘制两次,并在每个研究中添加两行:

# 2 figures arranged in 2 rows
par(mfrow=c(2,1))
set.seed(123)
A = sample(seq(from = -2, to = 2, by = 0.1), size = 10, replace = TRUE)

plot(seq(1:10),A, main="Plot 1")
abline(1.2,0, col="red") #First line added
abline(-0.3,0, col="blue") #Third line added

plot(seq(1:10),A, main="Plot 2")
abline(0.7,0, col="green") #Second line added
abline(-0.5,0, col="purple") #Fourth line added

我需要做的是在开始时执行两个绘图命令,然后按照红、绿、蓝、紫的顺序执行添加 4 行。即在顶部研究中添加一条线,在底部研究中添加一条线,并在两个研究之间交替出现新数据。即 - 我希望代码执行如下:

plot(seq(1:10),A, main="Plot 1")
plot(seq(1:10),A, main="Plot 2")
#Wait awhile
abline(1.2,0, col="red") #First line added
abline(0.7,0, col="green") #Second line added
#Wait awhile
abline(-0.3,0, col="blue") #Third line added
abline(-0.5,0, col="purple") #Fourth line added

我如何在 R 中做到这一点,希望使用绘图而不是更深奥的绘图库之一。

4

2 回答 2

0

最简单的方法是每次都重新创建整个绘图。创建 2 个图,然后当第一个附加数据进入时,重画第一个图并添加线,然后重画第二个图并重画线。当更多数据进来时:重画第一个图添加第一行,添加第二行,...

如果您真的坚持不重绘绘图,那么您可以绘制第一个绘图并使用类似par1 <- par(no.readonly=TRUE). 然后绘制第二个图并再次保存选项par2 <- par(no.readonly=TRUE)

现在您可以通过首先重置绘图参数然后使用par(mfg=c(1,1)).

例如:

par(mfrow=c(2,1))

plot( 1:10, 1:10 )
par1 <- par(no.readonly=TRUE)

plot( 101:110, 110:101 )
par2 <- par(no.readonly=TRUE)

par(par1)
par(mfg=c(1,1))
abline(h=5)

par(par2)
par(mfg=c(2,1))
abline(h=105)

您可以使用 来回切换par(mfg=...,但请记住还要设置图形参数。

于 2013-06-11T20:18:14.793 回答
0

看一下函数的mfg参数par()。例如:

A <- sample(seq(from=-2, to=2, by=0.1), size=10, replace=TRUE)

par(mfrow=c(2, 1))
plot(seq(1:10), A, main="Plot 1") 
    abline(1.2, 0, col="red")
plot(seq(1:10), A, main="Plot 2") 
    abline(0.7, 0, col="green") 

par(mfg=c(1, 1))
    abline(-0.3, 0, col="blue")

par(mfg=c(2, 1))
    abline(-0.5, 0, col="purple")
于 2013-06-11T20:18:48.403 回答