Ordem de barras empilhadas reversa

Estou criando um gráfico de barras empilhadas usando ggplot como este:

plot_df <- df[!is.na(df$levels), ] 
ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")

O que me dá algo assim:

Como inverter a ordem das barras empilhadas, para que o nível 1 fique na parte inferior e o nível 5 na parte superior de cada barra?

Eu já vi várias perguntas sobre isso (por exemplo,Como controlar a ordem do gráfico de barras empilhadas usando a identidade no ggplot2) e a solução comum parece ser reordenar o quadro de dados nesse nível, conforme o que o ggplot está usando para determinar a ordem

Então, eu tentei reordenar usando o dplyr:

plot_df <- df[!is.na(df$levels), ] %>% arrange(desc(levels))

No entanto, o enredo sai da mesma. Também não parece fazer diferença se eu organizo por ordem crescente ou decrescente

Aqui está um exemplo reproduzível:

group <- c(1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4)
levels <- c("1","1","1","1","2","2","2","2","3","3","3","3","4","4","4","4","5","5","5","5","1","1","1","1")
plot_df <- data.frame(group, levels)

ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")

questionAnswers(1)

yourAnswerToTheQuestion