如何在r中绘制日期和时间范围的线和点图

如何在r中绘制日期和时间范围的线和点图,r,plot,ggplot2,R,Plot,Ggplot2,以下是一个示例数据: > WakeTime <- strptime(c("2017/5/1 08:12", "2017/5/1 08:30", "2017/5/2 08:00", "2017/5/2 04:50"), format = "%Y/%m/%d %H:%M") > SleepTime <- strptime(c("2017/5/1 20:30", "2017/5/1 21:13", "2017/5/2 22:15", "2017/5/3 01:00"), f

以下是一个示例数据:

> WakeTime <- strptime(c("2017/5/1 08:12", "2017/5/1 08:30", "2017/5/2 
08:00", "2017/5/2 04:50"), format = "%Y/%m/%d %H:%M")
> SleepTime <- strptime(c("2017/5/1 20:30", "2017/5/1 21:13", "2017/5/2 
22:15", "2017/5/3 01:00"), format = "%Y/%m/%d %H:%M")

> timetable <- data.frame(WakeTime,SleepTime);timetable
             WakeTime           SleepTime
1 2017-05-01 08:12:00 2017-05-01 20:30:00
2 2017-05-01 08:30:00 2017-05-01 21:13:00
3 2017-05-02 08:00:00 2017-05-02 22:15:00
4 2017-05-02 04:50:00 2017-05-03 01:00:00

p.S.是否有必要将
唤醒时间
显示为
睡眠时间
中相同绘图中的两个不同颜色点?

使用这些辅助功能

library(hms)
date_only <- function(x)
    as.Date(strftime(x, "%Y-%m-%d"))
time_only <- function(x)
    as.hms(x-date_only(x))

我得到了这个警告:
警告消息:1:在as.hms(仅x-date_(x)):不兼容的方法(“-.POSIXt”,“-.date”)用于“-”
这只是一个警告。我想你可以只做
time\u为什么只使用x减去date\u(x)?
library(hms)
date_only <- function(x)
    as.Date(strftime(x, "%Y-%m-%d"))
time_only <- function(x)
    as.hms(x-date_only(x))
ggplot(timetable) + 
geom_segment(aes(x=time_only(WakeTime), xend=time_only(SleepTime),
    y=date_only(WakeTime), yend=date_only(SleepTime))) + 
geom_point(aes(x=time_only(WakeTime), y=date_only(WakeTime)), col="green") + 
geom_point(aes(x=time_only(SleepTime), y=date_only(SleepTime)), col="blue") + 
scale_x_time() + 
scale_y_date() + 
labs(x="Time", y="Date")