这是我的情节:
library(ggplot2)
economics <- economics %>% mutate(year = year(economics$date))
ggplot(economics,aes(year, unemploy))+
geom_line() +
geom_rect(aes(xmin = 1970,xmax = 1975,
ymin = 0, ymax = unemploy))
我想填充 1970 年至 1975 年线图下方的区域。但它不起作用。
我做错了什么?
问题是,在
ymax
中,我们使用整列“失业”,它应该是该年份范围内“失业”的 max
值
library(ggplot2)
library(dplyr)
library(lubridate)
economics %>%
mutate(year = year(date)) %>%
ggplot(aes(year, unemploy)) +
geom_line() +
geom_rect(aes(xmin = 1970,xmax = 1975,
ymin = 0,
ymax = max(.data[['unemploy']][between(.data[['year']], 1970, 1975)]))) +
theme_bw()
这更接近您想要的吗?接受的答案似乎不符合“填充线图下方的区域”的要求。
library(tidyverse)
economics |>
mutate(year = year(date)) |>
ggplot(aes(x = date, y = unemploy)) +
geom_line() +
geom_ribbon(mapping = aes(ymax = if_else(between(year, 1970, 1975),
unemploy, NA),
ymin = 0),
fill = "lightblue", alpha = 0.5)
创建于 2024-04-05,使用 reprex v2.1.0