首页 > 解决方案 > R ggplot - 两条水平线之间的阴影

问题描述

我想在 2 条水平线之间加阴影。这是一个可重现的示例:

library(dplyr)
library(ggplot2) 
library(lubridate)

set.seed(10)
dat <- tibble(Month = seq(12), Year = 2018, N = rnorm(12))
N1 <- min(dat$N) + 1
N2 <- max(dat$N) - 1

MyPlot <- ggplot(data = dat, mapping = aes(x = as.Date(YearMonth), y = N)) +
      geom_point() +
      geom_ribbon(xmin = as.Date(-Inf, origin="1970-01-01"), xmax = as.Date(Inf, origin="1970-01-01"),
                  ymin = N1, ymax = N2,
                  fill = "orange", alpha = 0.2
                  ) +
      scale_x_date(date_labels = "%B", breaks = "1 month") +
      theme(axis.text.x = element_text(angle=45, hjust = 1)) +
      labs(x = "Month")

print(MyPlot)

我收到警告:

Warning: Ignoring unknown parameters: xmin, xmax

此警告来自:

xmin = as.Date(-Inf, origin="1970-01-01"), xmax = as.Date(Inf, origin="1970-01-01")

我得到以下情节

在此处输入图像描述

我想在所有 X 轴上着色。我不能这样做,因为 X 轴是一个日期。有人知道怎么做吗?提前致谢。

标签: rggplot2lubridate

解决方案


我找到了答案。我替换功能

geom_ribbon()

按功能

annotate()

推荐阅读