У меня есть следующие данные:Изменение порядка размещения в ggplot уложены области графа
df <- as.data.frame(c(rep(1,3),rep(2,3),rep(3,3)))
names(df) <- "cont_var"
df$factor_var <- as.factor(rep(c("fac1","fac2","fac3"),3))
df$prop <- c(10,20,70,20,30,50,25,40,35)
Уровни «factor_var» быть:
> levels(df$factor_var)
[1] "fac1" "fac2" "fac3"
Я делаю площадь участка сложены, используя следующие:
library(ggplot)
ggplot(df, aes(x=cont_var, y=prop, fill=factor_var)) +
geom_area(colour="black",size=.2, alpha=.8) +
scale_fill_manual(values=c("blue", "grey", "red"))
который возвращает следующий результат:
Легенда показывает, что «factor_var» упорядочен по уровням, видимым ранее, но области не сложены в том же порядке. Как я могу создать выход с красным внизу, а затем серый, а затем синий, как и в легенде?
(. NB Это порядок мне нужно (factor_var будет упорядоченным переменным), это не только случай согласования штабелирования к порядку легенды по эстетическим причинам.)
EDIT: Желаемый результат, показанным ниже
РЕШЕНИЕ !!
переупорядочивая dataframe необходимо создать желаемый результат:
newdata <- df[order(df$cont_var, df$factor_var),]
Большое спасибо за вашу помощь.
Это работает для приведенного выше примера. Однако мои реальные данные немного сложнее - в легенде есть 9 уровней, которые находятся в правильном порядке, но на самом деле построены в порядке (снизу вверх): уровни 5, 4, 3, 2, 1, 6 , 7, 8, 9. Извините, я не могу воспроизвести его именно здесь, мои данные чувствительны. – user2568648
@ user2568648 см. Обновление – Jaap
С обновлением и 'levels (dat $ factor_var)' уровни находятся в том порядке, который я хотел бы выполнить для укладки, но уровень 5 по-прежнему отображается внизу! – user2568648