我有以下数据框:
> head(my[,1:2])
Time TD_Wait
96 18:24:45.776 12442
97 18:24:53.798 26799
1944 19:10:32.963 14423
1945 19:10:34.709 13592
1946 19:10:38.056 13457
1947 19:10:38.281 14063
> str(my)
'data.frame': 25007 obs. of 2 variables:
$ Time : Factor w/ 253251 levels "00:00:00.586",..: 27991 28001 33296 33306 33319 33320 33341 33363 33383 33392 ...
$ TD_Wait: int 12442 26799 14423 13592 13457 14063 11717 10026 10590 19372 ...
当我尝试
时,我无法格式化X轴上的时间标签ggplot(data=my, aes(x=my$Time,y=TD_Wait/1000)) + geom_point()
因为所有时间都相互重叠。我很困惑如何处理这个问题。我尝试改变时间因素,但却无处可去。
有没有办法在24小时内每小时清楚地显示X轴上的时间标签?
答案 0 :(得分:5)
首先转换为POSIXct:
my$Time <- as.POSIXct(my$Time, format="%H:%M:%S")
ggplot(data=my, aes(x=my$Time,y=TD_Wait/1000)) + geom_point()
ggplot
负责其余的工作。
答案 1 :(得分:2)
这是base
图形方法。您可以使用axis.POSIXct
和axis.Date
来绘制POSIX*
或Date
轴,如图所示。
d <- read.table(text='Time TD_Wait
18:24:45.776 12442
18:24:53.798 26799
19:10:32.963 14423
19:10:34.709 13592
19:10:38.056 13457
19:10:38.281 14063', header=TRUE)
d$Time <- as.POSIXct(d$Time, format="%H:%M:%S")
plot(d$Time, d$TD_Wait/1000, xaxt='n', pch=20, las=1,
xlab='Time', ylab='TD_Wait/1000')
axis.POSIXct(1, d$Time, format="%H:%M:%S")