替代哪个情节获得新线?

时间:2013-06-11 19:59:54

标签: r

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

# 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中做到这一点,希望使用情节,而不是更深奥的情节图库之一。

2 个答案:

答案 0 :(得分:0)

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

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

现在您可以首先使用par(mfg=c(1,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=...来回,但请记住也要设置图形参数。

答案 1 :(得分: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")