Добавление пользовательской строки в ggplot приводит к ошибке: Эстетика должна быть длиной 1

#r #ggplot2 #nlp

Вопрос:

Пытаюсь закрасить часть линии в ggplot. Этот цвет представляет значимые слова в ранжировании частот слов, отфильтрованных по исходным построенным данным.

Ошибка:

Ошибка в check_aesthetics() : Эстетика должна быть либо длиной 1, либо такой же, как данные (1306062): x и y

Оригинальный сюжет:

 #plot
word_freq_rank <- ggplot(word_list, aes(x = seq_along(freqs), y = freqs, group = 1))   
        geom_line()  
        coord_trans(y ='log10', x='log10')  
        labs(title = "Rank Frequency Plot", x = "log-Rank", y = "log-Frequency")
 

Обработка текста:

 # REMOVE STOPWORDS AND INFREQUENT WORDS- TO DEFINE BEST RANGE FOR ANALYSIS, by removing insignificant word indexes

stopword_idx <- which(word_list$words %in% stop_words)
low_frequent_idx <- which(word_list$freqs < 10)
insignificant_idx <- union(stopword_idx, low_frequent_idx)
meaningful_range_idx <- setdiff(1:nrow(word_list), insignificant_idx)
 

Добавление строки:

 # plot the meaningful range of the rank-frequency to use
word_freq_rank    geom_path(mapping = aes(x = meaningful_range_idx, y = freqs[meaningful_range_idx], color="green"), inherit.aes = TRUE)
 

Ошибка возникает, когда я пытаюсь добавить строку в конце кода ниже. Я упускаю кое-что основное, но в растерянности. Любая помощь будет признательна.

Комментарии:

1. Невозможно воспроизвести без данных, но вы можете попробовать создать фрейм данных для передачи . geom_path Кроме того, переместитесь color="green" за пределы aes .

2. Может быть, установить inherit.aes = FALSE в geom_path слое? Похоже, вы указываете всю эстетику, которая вам нужна.