这是我的图:
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年间的线条图下面的区域。但它不起作用。
我做错了什么?
发布于 2021-07-18 04:41:57
问题是,在ymax中,我们使用的是整个列'unemploy',它应该是该年份范围内'unemploy‘的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()发布于 2021-07-18 04:35:58
您可以选择对您有意义的ymax。例如,我设置了ymax = 4800
library(ggplot2)
ggplot(economics,aes(year, unemploy))+
geom_rect(aes(xmin = 1970,xmax = 1975,
ymin = 0, ymax = 4800), fill = "lightblue", alpha = .5) +
geom_line()

https://stackoverflow.com/questions/68423992
复制相似问题