如何在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")