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)])