【发布时间】:2018-01-31 04:23:57
【问题描述】:
在使用 facet_wrap 和 dplyr do(...) 生成绘图时,我无法让 geom_rect 显示阴影区域。
注意:这里的问题可能与数据结构问题有关。查看this SO question了解当前的播放状态。
以下最小示例使用ggplot2 包economics 数据和来自tis 包的NBER 衰退日期。
欣赏提示和咒语。
library(tis)
library(ggplot2)
# Prepare NBER recession start end dates.
start <- data.frame(date = as.Date(as.character(nberDates()[,"Start"]),"%Y%m%d"),
start= as.Date(as.character(nberDates()[,"Start"]),"%Y%m%d"))
end <- data.frame(date = as.Date(as.character(nberDates()[,"End"]),"%Y%m%d"),
end= as.Date(as.character(nberDates()[,"End"]),"%Y%m%d"))
dl <- economics %>%
gather(metric, value, pce:unemploy ) %>%
group_by(metric) %>%
mutate(diff = value - lag(value, default=first(value))) %>%
mutate(pct = diff/value) %>%
gather(transform, value, value:pct ) %>%
full_join(x=., y=start, by=c('date' = 'date')) %>%
full_join(x=., y=end, by=c('date' = 'date')) %>%
mutate(ymin = 0) %>%
mutate(ymax = Inf)
# Check the start end dates are present
dl %>% group_by(metric,transform, start) %>% summarise( count=n())
pl <- dl %>%
do(
plots = ggplot(data=., aes(x = date, y = value)) +
geom_point() +
geom_rect(aes(xmin = start, xmax = end, ymin = ymin, ymax = ymax)) +
stat_smooth(method="auto",size=1.5) +
facet_wrap(~transform, scales="free_y")
)
pl[[1,2]]
【问题讨论】:
-
我尝试运行您的代码。 “开始”和“结束”值主要是 NA...您打算为每个方面的
geom_rect()绘制什么值? -
正确。每个方面应该有多个阴影区域。我不想绘制和值,只是从上到下着色。