绘制事件的简单时间轴

时间:2016-11-03 10:00:33

标签: r ggplot2 unix-timestamp

我正在寻找一个解决方案来绘制时间轴,其中事件被标记为红色垂直线。我没有找到类似的东西:

enter image description here (红线的高度应该相等)

数据只是一个unix时间戳列表,应在时间跨度之间绘制为红色字符串。

如何使用ggplot绘图?

1 个答案:

答案 0 :(得分:2)

首先,以下是一些示例日期:

sampleDates <-
  sample(seq(as.Date("2016-01-01")
             , as.Date("2016-12-31")
             , 1)
         , 60)

然后,这是@ zx8754注释的起点扩展(注意:mtcars是一个内置数据集)。在这里,我添加一个箭头(而不仅仅是一行),然后使用geom_linerange,因为您可以在图例中获得一条垂直线,例如,如果您按事件类型着色线。从theme_minimal向下的所有内容都只是改变显示选项,使其更漂亮。

ggplot() +
  geom_segment(
    aes(x = min(sampleDates) - 10
        , xend = max(sampleDates) + 20
        , y = 0
        , yend = 0)
    , arrow = arrow()
  ) +
  geom_linerange(
    aes(x = sampleDates
        , ymin = -1
        , ymax = 1)
    , col = "red") +
  xlab("Sample Date") +
  theme_minimal() +
  theme(axis.text.y = element_blank()
        , axis.title.y = element_blank()
        , panel.grid.major.y = element_blank()
        , panel.grid.minor.y = element_blank()
        ) +
  scale_x_date(date_breaks = "1 month"
               , date_labels = "%Y\n%b-%d")

enter image description here