我正在寻找一个解决方案来绘制时间轴,其中事件被标记为红色垂直线。我没有找到类似的东西:
数据只是一个unix时间戳列表,应在时间跨度之间绘制为红色字符串。
如何使用ggplot绘图?
答案 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")