【发布时间】:2014-12-05 03:36:15
【问题描述】:
如何创建一个自定义图例,指示星期日是红色的(在“星期一”一词旁边有一个红色框,星期二是蓝色的?以下是我的 MWE。它只需要制作图例的代码。
library(ggplot2)
library(scales)
set.seed(1)
data <- data.frame(Date = seq(as.Date('2000-01-01'),
len= 23, by="1 day"),
Value = sample(1:50, 23, replace=TRUE))
sunday <- data.frame(date = seq(as.Date('2000-01-01 12:00:00'), len = 4, by="7 days"))
monday <- data.frame(date = seq(as.Date('2000-01-02 12:00:00'), len = 4, by="7 days"))
ggplot() + geom_line(data = data, aes(x = Date, y = Value)) +
geom_rect(data = sunday, aes(xmin = date-.5, xmax = date+.5, ymin = -Inf, ymax = Inf), alpha = 0.4, fill="red") +
geom_rect(data = monday, aes(xmin = date-.5, xmax = date+.5, ymin = -Inf, ymax = Inf), alpha = 0.4, fill="blue") +
scale_x_date(breaks = date_breaks("1 day"), labels = date_format("%d"))
【问题讨论】:
-
使用“传奇”设施并没有真正的意义。您需要构建一个反映这些矩形颜色的注释结构。
-
我有点困惑。 2000-01-01 实际上是星期六。我在这里错过了什么吗?
-
是的,我的情节在这方面是不正确的。我只是把它作为一个假例子放在一起,以说明真正的问题是什么 - 如何获得图例(或注释结构可能也可以)。