Мне потребовалось немного времени, чтобы добраться туда самому. Ключевой для меня способ понимания данных и порядка заказа Word
на основе среднего балла Category
. Итак, давайте сначала посмотрим на данные:
> YouGov
# A tibble: 440 x 17
ID Word Category Total Male Female `18 to 35` `35 to 54` `55+`
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 Incr~ 0 0 0 0 0 0 0
2 1 Incr~ 1 1 1 1 1 1 0
3 2 Incr~ 2 0 0 0 0 0 0
4 3 Incr~ 3 1 1 1 1 1 1
5 4 Incr~ 4 1 1 1 1 1 1
6 5 Incr~ 5 5 6 5 6 5 5
7 6 Incr~ 6 6 7 5 5 8 5
8 7 Incr~ 7 9 10 8 10 7 10
9 8 Incr~ 8 15 16 14 13 15 16
10 9 Incr~ 9 20 20 20 22 18 19
# ... with 430 more rows, and 8 more variables: Northeast <dbl>,
# Midwest <dbl>, South <dbl>, West <dbl>, White <dbl>, Black <dbl>,
# Hispanic <dbl>, `Other (NET)` <dbl>
Каждое слово имеет строку для каждой категории (или оценки, 1-10). Итого предоставляет количество ответов для этой комбинации слово / категория. Таким образом, хотя не было ответов, где слово «Невероятный» набрало ноль, для него все еще есть ряд.
Перед тем, как рассчитать среднюю оценку для каждого Слова, мы рассчитаем произведение категории и общей суммы для каждой комбинации «Слово-категория», назовем ее «Общая оценка». Отсюда мы можем рассматривать Word
как фактор и изменить порядок на основе среднего общего балла с использованием forcats
. После этого вы можете отобразить ваши данные так же, как вы это сделали.
library(tidyverse)
library(ggridges)
YouGov <- read_csv("https://gist.githubusercontent.com/camminady/2e3aeab04fc3f5d3023ffc17860f0ba4/raw/97161888935c52407b0a377ebc932cc0c1490069/poll.csv")
YouGov %>%
mutate(total_score = Category*Total) %>%
mutate(Word = fct_reorder(.f = Word, .x = total_score, .fun = mean)) %>%
ggplot(aes(x=Category, y=Word, height = Total, group = Word, fill=Word)) +
geom_density_ridges(stat = "identity", scale = 3)
![enter image description here](https://i.stack.imgur.com/Xi5ug.png)
Рассматривая Word как фактор, мы переупорядочили слова на основе их средняя категория. ggplot также упорядочивает цвета соответственно, поэтому нам не нужно самим изменять, если вы не предпочитаете другую цветовую палитру.