在geom_line中标记NA值

时间:2017-01-27 23:36:41

标签: r ggplot2

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

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"))

1 个答案:

答案 0 :(得分:2)

由于geom_text函数从初始y函数(这些记录为ggplot)继承NA位置,因此您需要明确地给出{{1}第二次y调用中的值。

geom_text