#r #ggplot2 #bar-chart
#r #ggplot2 #гистограмма
Вопрос:
У меня есть приведенная ниже гистограмма, на которой я строю различные категории покупок и проценты. Я хотел бы упорядочить их в порядке убывания, не могли бы вы посоветовать?
S2<- ggplot(data = data)
geom_bar(mapping = aes(x = category), ..prop.., group = 1), stat = "count")
scale_y_continuous(labels = scales::percent_format())
coord_flip() ylab("Total transactions %") labs(title="Total Transactions by Category")
theme_classic()
S2
Однако, если я попытаюсь использовать fct_reorder() в приведенном ниже коде, он сломается:
data %>%
count(category) %>%
mutate(category = fct_reorder(category, n, .desc = TRUE)) %>%
ggplot(aes(x = category, y = n)) geom_bar(stat = 'identity')
geom_bar(mapping = aes(x = category), ..prop.., group = 1), stat = "count")
coord_flip() ylab("Total transactions %") labs(title="Total Transactions by Category")
theme_classic()
Комментарии:
1. Привет, SidStack. Этот вопрос задавался много раз ранее при переполнении стека. Поэтому я закрыл это как дубликат. Если вы перейдете к связанному дублирующему вопросу, есть несколько отличных ответов, и вы должны получить то, что ищете там. Если по какой-то причине вы не можете заставить ни один из них работать, пожалуйста, отредактируйте свой вопрос, чтобы включить воспроизводимые данные и показать, в какой момент вы застряли. Удачи!
2. Я просмотрел эти потоки и все еще не могу исправить код.
3. если вы можете отредактировать свой пост, чтобы включить свои данные, я могу снова открыть его, чтобы мы могли посмотреть. Без ваших данных невозможно определить, может ли быть что-то не так со структурой вашего фрейма данных, или протестировать возможные решения. Сказав это, вы могли бы попробовать просто удалить строку
geom_bar(mapping = aes(x = category), ..prop.., group = 1), stat = "count")
, которая не нужна, поскольку у вас уже естьgeom_bar
вызов в строке выше, и он синтаксически некорректен (послеx = category
этого не должно быть дополнительной скобки.)4. Я хочу использовать% и не считать, вот почему я использовал эту строку. Есть ли у вас какие-либо другие рекомендации, где я могу получить%, а затем все равно изменить порядок?
5. добавьте строку
scale_y_continuous(labels = scales::percent)