【问题标题】:Creating graphs on loop in r在 r 中的循环上创建图形
【发布时间】:2014-02-20 20:16:59
【问题描述】:

我是 r 的新手,希望在使用循环函数创建图形方面获得一些帮助。

我希望创建 288 个图形,并且数据是堆叠格式的。每个图表都是从 30 行数据创建的,所以我的数据中总共有 288*30 = 8640 行。

我设法使用此代码创建了第一个图表-

 # setting range and table
 xrange <- range(0,300)
  yrange <- range(1,15)
  plot(xrange, yrange, type="n", xlab="Time in seconds", ylab="Performance")

# adding lines
lines(df$TimeStamp0[1:30],df$Pur[1:30], type="o", pch=4, col="red")
lines(df$TimeStamp0[1:30],df$Yel[1:30], type="o", pch=4, col="blue")
lines(df$PartTimeStamp0[1:30],df$PartPur[1:30], type="o", pch=20, col="green")
lines(df$PartTimeStamp0[1:30],df$PartYel[1:30], type="o", pch=20, col="orange")

四个不同的性能组件有四行。我希望创建一个循环来获取此语法,以便在我的整个数据集中每 30 行生成一个图表。我尝试了“for loop”命令(见下文),但无法正常工作。

for(i in 1:288) {
   startRow=1, endRow=startRow+29
   #pasted the above graph creation syntax
   }

非常感谢任何帮助,谢谢!

【问题讨论】:

  • 您只是在循环中复制相同的行吗?您应该将各种[1:30] 更改为[startRow:endRow]
  • 288 个图要做什么?
  • 您的循环从 1:288 开始运行,生成具有给定数字的变量“i”,但我在循环代码中的任何地方都看不到 i。我也没有看到你在每个循环中更新你的 startRow。你真的需要做两者之一。现在这个循环只生成 i 288 次,它什么也不做,并且一遍又一遍地制作相同的图表。
  • 是的,你是对的,我只是将它更改为 for(i in seq(1, 8640, by=30) 以及我的 [1:30] 到 [startRow:endRow],以及所有内容现在可以使用了。非常感谢!

标签: r loops


【解决方案1】:

由于您想要每 30 行一个图表,因此您不想使用 1:288 范围;相反,您应该使用:

for(i in seq(1, 8640, by=30){

另外,你需要将“startRow=1”中的“1”改为“i”,即

startRow=i
endRow=startRow+29

【讨论】:

  • 是的,您对我的循环代码中的错误是正确的。现在一切正常。非常感谢!! :)
猜你喜欢
  • 2019-04-09
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多