Сортируйте или заказывайте несколько баров с помощью geom_col barplot - PullRequest
0 голосов
/ 31 марта 2019

У меня есть такая таблица:

Year    Substance     Number
2013        A           32
2013        B           27
2013        C           17
2013        D           17
2013        E           15
2013        F           13
2014        B           20
2014        D           17
2014        A           16
2014        C           11
2014        F            9
2014        G            3

В основном, годы идут до 2018 года с 6 или 7 веществами в год, и у каждого вещества есть номер (частота появления).У веществ есть реальные названия, но я не могу опубликовать их в Интернете, поэтому я изменил их на A, B, C, D, E, F и G. Я не могу упорядочить столбцы как хочу, в порядке убывания.

Я провел много исследований в Интернете и перепробовал много вещей: форков, фактор, уровни, переупорядочение и т. Д., И ничего из этого не сработало.У меня есть новичок в R, так что я не знаю, что будет лучшим способом сделать то, что я хочу.

Когда я пытаюсь построить график таким образом, он помещает вещество в алфавитном порядке:

ggplot(Test, aes(x = Year, y = Number, fill = Substance)) + geom_col(position = "dodge")

На первый год 2013 года заказ правильный.Я хочу, чтобы это выглядело так, в порядке убывания, раз в два года.Что мне делать?

1 Ответ

0 голосов
/ 31 марта 2019

Это довольно сложно, потому что ваш порядок меняется в зависимости от года, поэтому преобразование факторных переменных становится беспорядочным.Вот один из способов сделать это, отсортировав позицию x по отдельному числовому значению:

library('data.table')
library('ggplot2')

Test[, Ranking:= rank(-Number, ties.method = 'first'), by = .(Year)]
ggplot(Test, aes(x = Ranking,
                 y = Number, 
                 fill = Substance)) +
  geom_col(position = 'dodge') +
  scale_x_continuous(name = '', breaks = 0) +
  facet_wrap(~Year)

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...