Я пытаюсь создать линейную диаграмму ggplot с временным рядом, у которого отсутствуют данные. Я хочу пометить значения NA как NA на самой диаграмме, но не строить линию через эти точки (т. Е. Иметь разрыв в строке). Ниже приведен воспроизводимый пример того, что я пробовал до сих пор. Я бы хотел, чтобы на диаграмме была метка «NA» чуть выше точки y = 0 для каждого года, где число = NA.Значения метки NA в geom_line
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"))
Во избежание предупреждения «Удалено 2 строки, содержащие отсутствующие значения (geom_text)». вы должны также указать подмножество (например, 'geom_text (data = subset (data,! is.na (number)), aes (label = subset (number,! is.na (number))), hjust = 1, vjust = -1) ') –
Кроме того, для того, чтобы быть приверженцем, я бы рекомендовал не использовать' data' в качестве имени объекта, поскольку это базовая функция R. –