在R中实时格式直方图格式化日期时间轴?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中实时格式直方图格式化日期时间轴?相关的知识,希望对你有一定的参考价值。

我试图在实时直方图中修复未格式化的日期时间轴。我正在使用Time/Date real time plot in R的改编。

 n=5000
 df=data.frame(time=Sys.time()+1:n,y=runif(n))
 window=1000
 for(i in 1:(n-window))
 {
flush.console()
df1 <-df[i:(i+window),]
h= hist(as.POSIXct(df1$time), breaks="mins",  
yaxt = "n", col="gray", main=NULL, freq = TRUE, xlab= "", 
plot=FALSE, format = "%d %H:%M")
plot(h, breaks="mins", col="gray", main=NULL, freq = TRUE, 
xlab= "", format = "%d %H:%M")
Sys.sleep(0.01)
 }

此外,我尝试使用下面的代码一半成功。但令人遗憾的是,x轴显示日期时间,如闪光和日期时间轴消失,如果我减少更多Sys.sleep,轴在我的第一个例子中看起来不像未格式化的日期时间轴。

n=5000
df=data.frame(time=Sys.time()+1:n,y=runif(n))
window=1000
for(i in 1:(n-window))
{
flush.console()
df1 <-df[i:(i+window),]
x_at <-pretty(df1$time)
x_labels <-format(pretty(df1$time),"%d %H:%M")
 hist(df1$time,df1$y,type='l',breaks="mins", xaxt='n')
axis.POSIXct(side=1,at=x_at,labels=x_labels)
Sys.sleep(0.01)
}

可能是另一种以更好的方式查看x轴的方法吗?

答案

问题是当你传递一个POSIXt对象时,hist()知道时间轴,但是当你传递像plot()这样的直方图对象时,h不会知道。所以只需一步完成所有事情,而不是两步:

 n=5000
 df=data.frame(time=Sys.time()+1:n,y=runif(n))
 window=1000
 for(i in 1:(n-window))
 {
    flush.console()
    df1 <-df[i:(i+window),]
    hist(as.POSIXct(df1$time), breaks="mins",  
      yaxt = "n", col="gray", main=NULL, freq = TRUE, xlab= "", 
      format = "%d %H:%M")
    Sys.sleep(0.01)
 }

以上是关于在R中实时格式直方图格式化日期时间轴?的主要内容,如果未能解决你的问题,请参考以下文章

将R ggplot中直方图中的y轴标准化为比例

频率计数日期

时间轴上刻度子集的日期格式

在Matplotlib x轴标签格式的日期时间

在 matplotlib 中更改日期时间轴的格式

Highcharts 日期时间格式 y 轴间隔