可能重复:
Plot dates on the x axis and time on the y axis with ggplot2
我有一张包含时间,日期和价值的表格。例如,
time date value
00:01 2012-04-01 100
00:02 2012-04-01 150
00:03 2012-04-01 130
...
00:01 2012-04-02 80
00:02 2012-04-02 160
00:03 2012-04-02 20
...
03:01 2012-04-06 120
03:02 2012-04-06 160
04:03 2012-04-06 70
...
我需要绘制时间(x轴),值(y轴)的图表。我正在使用ggplot2和lubridate,但是不能沿着x轴每隔30分钟制作一个R图。大约有3000行(多个日期从00:00到23:59,几分钟几次)。
有关如何实现这一目标的任何建议。我尝试过使用因子(时间),但是R并没有把它当作时间值(所以,它会尝试标记从2012-04-01 00:01到2012-04-06 23:59的连续值
答案 0 :(得分:0)
感谢所有反馈。
scale_datetime的参数在0.9中已更改。因此,正如所建议的那样,我使用标签而不是格式,并使用date_breaks函数设置中断。
为了创建图表,我添加了一个日期时间字段 -
df$comb <- ymd_hm(paste(df$date, df$time))
定义了函数,
dropDate <- function(x){
3600*hour(x)+60*minute(x)+second(x)
}
qplot(dropDate(df$comb), df$average, ylim=c(0,20), geom="smooth", colour=df$date) + scale_x_datetime(breaks = date_breaks("1 hours"), labels=date_format("%H")) + xlab("Hour in UTC") + ylab("Average")