我想实时地绘制一些数据。
我正在使用的代码非常类似于此,摘自我在这里读到的另一个答案:
n=1000
df=data.frame(time=1:n,y=runif(n))
window=100
for(i in 1:(n-window))
{
flush.console()
plot(df$time,df$y,type='l',xlim=c(i,i+window))
Sys.sleep(0.1)
}我想在图的x轴上画出时间图.所以我做了这个:
n=1000
df=data.frame(time=0,y=runif(n))
window=100
for(i in 1:(n-window))
{
**df$time[i] <- format(Sys.time(),"%X")**
flush.console()
plot(df$time,df$y,type='l',xlim=c(i,i+window))
Sys.sleep(0.1)
}但是我有错误,你们有什么帮助/建议吗?
非常感谢,
本
编辑
我想要这个运行900次,在一个固定的频率。我可以在for循环之前计算时间值吗?例如:
df$DateTime1 1= Sys.time()
对于(;;) df$DateTimei = df$DateTimei +X秒
端对环
用于(;;)/模拟活动绘图?端对环
发布于 2017-04-15 22:45:37
要绘制时间,您需要一个time对象。我对您的代码做了一些修改,使其实际上有了一个时间向量。此外,我还改变了将向量编入索引以摆脱xlim的方式。
n=1000
df=data.frame(time=Sys.time()+1:n,y=runif(n))
window=100
for(i in 1:(n-window))
{
flush.console()
df1 <-df[i:(i+window),]
plot(df1$time,df1$y,type='l')
Sys.sleep(0.1)
}编辑解决方案以添加小时。你可以增加几个小时,但它似乎减缓了这个过程。正如您所看到的,我添加了axis.POSIXct调用,但是我不得不将Sys.Sleep减慢到0.5,您几乎看不到x轴:
n=1000
df=data.frame(time=Sys.time()+1:n,y=runif(n))
window=100
for(i in 1:(n-window))
{
flush.console()
df1 <-df[i:(i+window),]
x_at <-pretty(df1$time)
x_labels <-format(pretty(df1$time),"%H:%M:%S")
plot(df1$time,df1$y,type='l',xaxt='n')
axis.POSIXct(side=1,at=x_at,labels=x_labels)
Sys.sleep(0.5)
}https://stackoverflow.com/questions/43431269
复制相似问题