Порядок баров по-разному между гранями в ggplot

Я работаю над сайтом https://www.tidytextmining.com/ и экспериментирую с набором данных книг Остин. Я пытаюсь изобразить наиболее часто встречающиеся слова в каждой из шести книг и заставить отдельные столбцы каждого сюжета идти в порядке убывания. Я адаптировал код для построения tf-idf, показанного в разделе 3.3, но я не могу заставить графики выглядеть одинаково (получить полосы для частоты слова, чтобы идти в порядке убывания). Воспроизводимый код и вывод показаны ниже.

needed <- c("plyr", "dplyr", "tidytext", "ggplot2", "janeaustenr")
install.packages(needed, dependencies=TRUE)
list = lapply(needed, require, character.only = TRUE)

data(stop_words)

book_words = austen_books() %>%
    unnest_tokens(word, text) %>%
    anti_join(stop_words) %>%
    count(book, word, sort = TRUE) %>%
    ungroup()

total_words = book_words %>% 
    group_by(book) %>% 
    summarize(total = sum(n))

book_words = left_join(book_words, total_words)

book_words <- book_words %>%
    bind_tf_idf(word, book, n)

book_words %>%
    arrange(desc(n)) %>%
    mutate(word = factor(word, levels = rev(unique(word)))) %>% 
    group_by(book) %>% 
    top_n(15, wt = n) %>% 
    ungroup %>%
    ggplot(aes(word, n, fill = book)) +
    geom_col(show.legend = FALSE) +
    labs(x = NULL, y = "n") +
    facet_wrap(~book, ncol = 2, scales = "free") +
    coord_flip()

Результирующий Rplot

0 ответов

Другие вопросы по тегам