欢迎使用Markdown编辑器
geom_ribbon相关问题
我想利用geom_ribbon做一个图,主要是做两组直线之间的填充
具体数据生成过程如下,
tarrif <- tibble(
date = c(as.Date("2018-01-01"),as.Date("2018-02-07"),as.Date("2018-03-23"),
as.Date("2018-04-02"),as.Date("2018-05-01"),as.Date("2018-07-01"),
as.Date("2018-07-06"),as.Date("2018-08-23"),as.Date("2018-09-24"),
as.Date("2018-11-01"),as.Date("2019-01-01"),as.Date("2019-02-07"),
as.Date("2019-06-01"),as.Date("2019-06-15"),as.Date("2019-07-01"),as.Date("2019-09-01"),
as.Date("2019-09-17"),as.Date("2019-12-26"),as.Date("2020-02-07"),
as.Date("2020-02-08"),as.Date("2020-02-14"),as.Date("2020-04-30")),
china = c(8.0,8.0,8.0,8.4,8.3,7.2,10.1,14.4,18.3,18.2,16.5,
16.5,20.7,20.7,20.7,21.8,21.1,20.9,20.9,20.9,20.3,20.3),
us = c(3.1,3.2,3.8,3.8,3.8,3.8,6.7,8.2,12.0,12.0,12.0,12.0,12.0,
17.6,17.6,21.0,21.0,21.0,21.0,21.0,19.3,19.3)
)
d <- tibble(
date = seq(as.Date("2018-01-01"),
as.Date("2020-04-30"),
by = "1 day")
)
d_tar <- left_join(d,tarrif,by = "date")
d_tar <- fill(d_tar,china,.direction = "down")
d_tar <- fill(d_tar,us,.direction = "down")
d_tar <- mutate(d_tar,
pd_china = case_when(date <= as.Date("2018-04-02") ~ "A",
date <= as.Date("2018-05-01") ~ "C",
date <= as.Date("2018-07-01") ~ "D",
date <= as.Date("2018-07-06") ~ "E",
date <= as.Date("2018-08-23") ~ "F",
date <= as.Date("2018-09-24") ~ "G",
date <= as.Date("2018-11-01") ~ "H",
date <= as.Date("2019-01-01") ~ "I",
date <= as.Date("2019-06-01") ~ "K",
date <= as.Date("2019-07-01") ~ "M",
date <= as.Date("2019-09-01") ~ "N",
date <= as.Date("2019-09-17") ~ "O",
date <= as.Date("2019-12-26") ~ "P",
date <= as.Date("2020-02-14") ~ "Q",
date <= as.Date("2020-04-30") ~ "T"),
pd_us = case_when(date <= as.Date("2018-02-06") ~ "XA",
date <= as.Date("2018-03-22") ~ "XB",
date <= as.Date("2018-07-05") ~ "XC",
date <= as.Date("2018-08-22") ~ "XD",
date <= as.Date("2018-12-31") ~ "XE",
date <= as.Date("2019-06-14") ~ "XF",
date <= as.Date("2019-08-31") ~ "XG",
date <= as.Date("2020-02-13") ~ "XH",
date <= as.Date("2020-04-30") ~ "XI")
)
上述就是数据生成的过程
下面是做图的code
ggplot() +
geom_ribbon(data = d_tar,
aes(date,ymin = us,ymax = china,fill = pd_china)) +
geom_ribbon(data = d_tar,
aes(date,ymin = 0,ymax = us,fill = pd_us)) +
geom_line(data = d_tar,
aes(x = date,y = china),
size = 1) +
geom_line(data = d_tar,
aes(x = date,y = us),
size = 1)
结果如下
我的问题是,我的数据里面是没有NA值的,为什么某些日期处是空白的,没有被填充上呢
如答案可解决问题,我 愿意出50论坛币