Правильно упорядочить ось x в ggplot / facet_wrap? - PullRequest
0 голосов
/ 06 мая 2020

Я видел здесь ответы на несколько подобных вопросов, но, похоже, я не могу найти правильный набор изменений, чтобы эта работа работала. Я пробовал fct_reorder, fct_reorder2 и reorder_within и не получил желаемого результата.

У меня есть следующая диаграмма:

enter image description here

Я бы хотел упорядочить дискретную ось x от высокого к низкому на основе числа «High».

Вот что я получил:

my_data

# A tibble: 40 x 4

   vendor rating     n count_high
   <chr>  <fct>  <int>      <dbl>
 1 1002   Medium     2          0
 2 1009   Low        1          0
 3 1004   High       1          1
 4 1015   Low        2          0
 5 1000   High       1          1
 6 983    Medium     3          0
 7 992    Low        1          0
 8 994    Medium     1          0
 9 1009   Low        1          0
10 981    Low        1          0
# ... with 30 more rows
my_data %>%     
        ggplot(aes(x = reorder(vendor, count_high), y = n, fill = rating)) +
        geom_col() +
        coord_flip() +
        facet_wrap(. ~ rating)

И результат dput:

structure(list(vendor = c("1002", "1009", "1004", "1015", "1000", 
"983", "992", "994", "1009", "981", "999", "1008", "989", "988", 
"993", "995", "994", "996", "1007", "1005", "981", "992", "1001", 
"1012", "999", "1011", "996", "998", "995", "998", "993", "991", 
"1000", "1016", "996", "1002", "1004", "970", "1002", "991"), 
    rating = structure(c(2L, 3L, 1L, 3L, 1L, 2L, 3L, 2L, 3L, 
    3L, 3L, 3L, 1L, 2L, 3L, 2L, 3L, 3L, 2L, 2L, 3L, 1L, 2L, 3L, 
    1L, 2L, 3L, 2L, 1L, 2L, 3L, 3L, 1L, 2L, 2L, 3L, 2L, 3L, 2L, 
    3L), .Label = c("High", "Medium", "Low"), class = "factor"), 
    n = c(2L, 1L, 1L, 2L, 1L, 3L, 1L, 1L, 1L, 1L, 3L, 1L, 3L, 
    4L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 4L, 3L, 2L, 1L, 1L, 1L, 1L, 
    1L, 1L, 3L, 2L, 2L, 1L, 1L, 1L, 1L, 3L, 1L, 1L), count_high = c(0, 
    0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 
    0, 4, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 
    0)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-40L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...