在R中逐步重叠线图的方法

在R中逐步重叠线图的方法,r,plot,R,Plot,我有一个for循环,从中调用函数grapher(),该函数从数据帧(position和w,都是连续变量)中提取某些列并绘制它们。我的代码每次运行时都会更改Y变量(这里称为w),因此我想逐步将其绘制为覆盖图。例如,如果我运行grapher()函数4次,我希望有4个图,其中第一个图只有一条线,第四个图的4条线相互重叠(作为不同的颜色) 我已经尝试过其他帖子中建议的points(),但出于某种原因,它只会生成一个新的图形 grapher <- function(){ position.2L &l

我有一个for循环,从中调用函数grapher(),该函数从数据帧(position和w,都是连续变量)中提取某些列并绘制它们。我的代码每次运行时都会更改Y变量(这里称为w),因此我想逐步将其绘制为覆盖图。例如,如果我运行grapher()函数4次,我希望有4个图,其中第一个图只有一条线,第四个图的4条线相互重叠(作为不同的颜色)

我已经尝试过其他帖子中建议的points(),但出于某种原因,它只会生成一个新的图形

grapher <- function(){
position.2L <- data[data$V1=='2L', 'V2']
w.2L <- data[data$V1=='2L', 'w']
plot(position.2L, w.2L)
points(position.2L, w.2L, col='green')
}


# example of my for loop #
for (t in 1:200){
#code here changes the 'w' variable each iteration of 't'
if (t%%50==0){
grapher()
  }
}

grapher我不知道关于你的情况的任何细节,我只能假设这样的情况可能适用

# Example data set
d <- data.frame(V1=rep(1:2, each=6), V2=rep(1:6, 2), w=rep(1:6, each=2))

# Prepare the matrix we will write to.
n <- 200
m <- matrix(d$w, nrow(d), n)

# Loop progressively adding more noise to the data
set.seed(1)
for (i in 2:n) {
    m[,i] <- m[,i-1] + rnorm(nrow(d), 0, 0.05)
}

# We can now plot the matrix, selecting the relevant rows and columns
matplot(m[d$V1 == 1, seq(1, n, by=50)], type="o", pch=16, lty=1)
#示例数据集

d我不知道关于你的情况的任何细节,我只能假设这样的情况可能适用

# Example data set
d <- data.frame(V1=rep(1:2, each=6), V2=rep(1:6, 2), w=rep(1:6, each=2))

# Prepare the matrix we will write to.
n <- 200
m <- matrix(d$w, nrow(d), n)

# Loop progressively adding more noise to the data
set.seed(1)
for (i in 2:n) {
    m[,i] <- m[,i-1] + rnorm(nrow(d), 0, 0.05)
}

# We can now plot the matrix, selecting the relevant rows and columns
matplot(m[d$V1 == 1, seq(1, n, by=50)], type="o", pch=16, lty=1)
#示例数据集

d每次调用
plot
将创建一个新的绘图。如果要添加到现有绘图,请调用
plot
一次,然后使用
lines
功能添加线条,并使用
points
功能添加点。首次调用
plot
时,还需要使用
xlim
ylim
参数设置所需的x轴和y轴范围。例如:
plot(NA,xlim=c(0,10),ylim=c(-5,20),xlab=“”,ylab=“”)
这是否意味着每次代码运行时都需要创建新变量?例如,上面的grapher()运行了4次,我是否需要存储Y1、Y2、Y3和Y4?如果是这样的话,是否没有其他方法来防止硬编码变量?变量可以被调用任何东西,并且每次通过循环时都可以是相同的名称(但可能具有不同的值),或者是不同的名称。另一种方法是先生成变量并将其存储在矩阵中,然后将它们全部(或任何子集)绘制出来立即使用
matplot()
。每次调用
plot
将创建一个新的绘图。如果要添加到现有绘图,请调用
plot
一次,然后使用
lines
功能添加线条,并使用
points
功能添加点。首次调用
plot
时,还需要使用
xlim
ylim
参数设置所需的x轴和y轴范围。例如:
plot(NA,xlim=c(0,10),ylim=c(-5,20),xlab=“”,ylab=“”)
这是否意味着每次代码运行时都需要创建新变量?例如,上面的grapher()运行了4次,我是否需要存储Y1、Y2、Y3和Y4?如果是这样的话,是否没有其他方法来防止硬编码变量?变量可以被调用任何东西,并且每次通过循环时都可以是相同的名称(但可能具有不同的值),或者是不同的名称。另一种方法是先生成变量并将其存储在矩阵中,然后将它们全部(或任何子集)绘制出来立即使用
matplot()