我正在绘制ITime
变量的直方图,如果是x变量,我希望x轴刻度显示在as.character
值中。默认情况下,它们仅表示为自0:00以来的秒数。我怎么能做到这一点?
make.time <- function(x){
mins <- sample(1:59, 1)
if(mins < 10) mins <- paste0('0', mins)
paste0(sample(1:23, 1), ':', mins)
}
data.table(x = sample(1:100, 50, T),
time = as.ITime(replicate(50, make.time()))) %>%
ggplot(aes(time)) + geom_histogram()
答案 0 :(得分:1)
嗯,在示例中,make.time()
函数没有被复制。这是一个相对的实现
make.time <- function(n=1){
mins <- sample(1:59, n, replace=T)
hrs <- sample(1:23, n, replace=T)
as.ITime(sprintf("%d:%02f", hrs, mins))
}
然后样本数据
dd <- data.table(x = sample(1:100, 50, T), time = make.time(50))
然后,如果您想要更传统的日期/时间轴标签,您可以明确转换为POSIXct
ggplot(dd, aes(as.POSIXct(time))) + geom_histogram()