1

可能重复:
使用 ggplot2 在 x 轴上绘制日期,在 y 轴上绘制时间

我有一张包含时间、日期和值的表格。例如,

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 的连续值.

4

1 回答 1

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")
于 2012-06-01T16:18:38.000 回答