首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的时间/日期实时图

R中的时间/日期实时图
EN

Stack Overflow用户
提问于 2017-04-15 21:03:06
回答 1查看 1K关注 0票数 1

我想实时地绘制一些数据。

我正在使用的代码非常类似于此,摘自我在这里读到的另一个答案:

代码语言:javascript
复制
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轴上画出时间图.所以我做了这个:

代码语言:javascript
复制
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秒

端对环

用于(;;)/模拟活动绘图?端对环

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-15 22:45:37

要绘制时间,您需要一个time对象。我对您的代码做了一些修改,使其实际上有了一个时间向量。此外,我还改变了将向量编入索引以摆脱xlim的方式。

代码语言:javascript
复制
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轴:

代码语言:javascript
复制
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)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43431269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档