我正在尝试在实时直方图中修复未格式化的日期时间轴。我用的是一个改编自的例子 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轴的方法吗?
答案 0 :(得分:0)
问题是hist()
在传递POSIXt对象时知道时间轴,但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)
}