我正在尝试使用geom_rect
对时间序列图的某个区域进行着色。
我使用下面的代码创建时间序列图
library(ggplot2)
set.seed(123)
date <- as.Date(seq(as.Date("2014-01-01"), as.Date("2015-12-31"), by = 1), format="%Y-%m-%d")
a <- runif(730, 3000, 120000)
df <- data.frame(date, a)
ggplot() +
geom_line(data = df, aes(x = date, y = a))
我尝试使用geom_rect
following the answer to this question
library(lubridate)
rectangle <- data.frame(xmin = decimal_date(as.Date(c("2014-10-01"))),
xmax = decimal_date(as.Date(c("2015-02-01"))),
ymin = -Inf, ymax = Inf)
ggplot() +
geom_line(data = df, aes(x = date, y = a)) +
geom_rect(data = rectangle, aes(xmin=xmin, xmax = xmax, ymin = ymin, ymax = ymax),
fill = "red", alpha = 0.5)
我收到了这个错误
错误:输入无效:date_trans仅适用于类Date的对象
任何建议如何解决这一问题将不胜感激。
答案 0 :(得分:1)
这有效:
library(lubridate)
rectangle <- data.frame(xmin = as.Date(c("2014-10-01")),
xmax = as.Date(c("2015-02-01")),
ymin = -Inf, ymax = Inf)
ggplot() +
geom_line(data = df, aes(x = date, y = a)) +
geom_rect(data = rectangle, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax),
fill = "red", alpha = 0.5)
只需删除decimal_date()