r语言 - 以geom_line为单位标记 NA 值



我正在尝试创建一个缺少数据的时间序列的 ggplot 折线图。我想在图表本身上将 NA 值标记为 NA,但不绘制通过这些点的线(即在该行中有一个中断)。下面是我迄今为止尝试过的可重现示例。我希望图表在每年 y = 0 点上方有一个"NA"标签,其中数字 = NA。

library(ggplot2)
year <- c(1990:2000)
number <- c(10, 20, 30, 40, NA, 50, 60, NA, 70, 80, 90)
data <- data.frame(year, number)
ggplot(data, aes(x = year, y = number)) +
  geom_line() +
  geom_text(data = subset(data, !is.na(number)), 
            aes(label = number),
            hjust = 1,
            vjust = -1) +
  geom_text(data = subset(data, is.na(number)),
            aes(label = "NA"))

由于geom_text函数从初始ggplot函数(对于这些记录NA)继承y位置,因此需要在第二次geom_text调用中显式给出y值。

library(ggplot2)
year <- c(1990:2000)
number <- c(10, 20, 30, 40, NA, 50, 60, NA, 70, 80, 90)
data <- data.frame(year, number)
ggplot(data, aes(x = year, y = number)) +
    geom_line() +
    geom_text(data = subset(data, !is.na(number)), 
              aes(label = number),
              hjust = 1,
              vjust = -1) +
    geom_text(data = subset(data, is.na(number)),
              aes(y = 1, label = "NA"))

最新更新