我正在尝试创建一个缺少数据的时间序列的 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"))