geom_rect绘制没有数据的地方

时间:2017-03-13 14:01:18

标签: r plot ggplot2

我制作了一个时间序列图,绘制了不同日期12小时内不同活动的持续时间。但是,在我有数据的期间结束时,我的图表不是绘制最后一个活动的持续时间和结束时间,而是填充我没有随机活动数据的所有时间。这可能是我的情节最好的例证:在这里,最后一个活动是“活动休息”,然后在剩余时间(15:45以后),情节填充了与“不活动”相对应的颜色。 #39;尽管15:45之后没有数据。

The plot in question

我使用的代码如下:

cbbPalette <- c("#FF3300", "#FFCC00", "#99FF33", "#0099CC", "#FFCCFF", "#FFFFFF")  

p <- ggplot(df, aes(xmin=as.Date(date),xmax=as.Date(date)+1,
                    ymin=as.POSIXct(start,format='%H:%M:%S'),
                    ymax=as.POSIXct(start,format='%H:%M:%S')+duration,
                    fill=event))

p <- p+geom_rect(alpha = I(8/10))

p + ylab("Time of Day") + xlab("Date") + scale_x_date(labels = date_format("%d/%m"), breaks = date_breaks("1 day")) +
  scale_y_datetime(labels = date_format("%H:%M"), breaks = date_breaks("2 hour")) +
  coord_flip() +

 scale_fill_manual(values=cbbPalette, name="Behaviour",
                   breaks=c("GL", "IA", "P", "R", "SS"),
                   labels=c("General Movement", "Inactive", 
                           "Pacing", "Rapid Locomotion", "Active Rest"), 
                   guide = guide_legend(reverse=TRUE)) +

  theme_bw() +

  theme(panel.border = element_rect(linetype = "dashed", colour = "black"))

以下是我数据框最末端的一些数据(即问题发生的地方)。希望很明显,&#39;事件中的缩写是什么?与我的代码中的图中的颜色对齐:

date          start       duration       event
2017-03-06    15:40:00    120             SS
2017-03-06    15:42:00    10              GL
2017-03-06    15:42:10    60              SS
2017-03-06    15:43:10    10              R
2017-03-06    15:43:20    20              SS
2017-03-06    15:43:40    30              IA
2017-03-06    15:44:10    10              SS
2017-03-06    15:44:20    30              IA
2017-03-06    15:44:50    10              SS

我已经尝试过几行NAs到我的数据帧的末尾,但这并没有什么不同。我不确定究竟出了什么问题。

老实说,我找不到任何与我的问题相符的问题 - 例如,从ggplot消除NAs的问题对我没有帮助,但是如果你认为你就告诉我&# 39;我发现了类似的问题。

0 个答案:

没有答案