ggplot2 - упорядочение графика по весу

Я пытаюсь сгенерировать гистограмму (используя ggplot2) с данными оценки местоположения вдоль оси y и базовой шкалой отсчета вдоль оси x. Мои данные структурированы так:

  Data <- data.frame(locations = c("A","B","C","D"...), estimates = c(200, 300, 400, 200...)

Затем я использовал dplyr, чтобы упорядочить свои данные в соответствии с оценками

  library(dplyr)
  Data <- Data %>% arrange(estimates)

Итак, я запускаю свой код ggplot2

  library(ggplot2)
  ggplot(Data, aes(locations, weight = estimates))+
         geom_bar()+
         coord_flip()

Но результирующий сюжет таков, столбики не были упорядочены по оценкам.

1 ответ

Решение

Там нет смысла использовать dplyr, Все, что вам нужно сделать, это заказать estimatesизвлеките соответствующее locations и передать его scale_x_discrete, например: scale_x_discrete(limits = Data$locations[order(Data$estimates)])

library(ggplot2)

 ggplot(Data, aes(locations, weight = estimates))+
         geom_bar()+
         coord_flip() +
         scale_x_discrete(limits = Data$locations[order(Data$estimates)])

введите описание изображения здесь

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