Эврика!
Оказывается в R для таких случаев есть специальная функция reorder()
Код: Выделить всё
library(ggplot2)
Mn <- c("Январь", "Февраль", "Март")
Dx <- sample(1:3, 20, replace = T)
Dy <- runif(20, min = 2, max = 25)
Dm <- Mn[Dx]
df <- data.frame(Dx, Dy, Dm)
# Легенда - Март, Февраль, Январь
ggplot(df, aes(Dx, Dy, color = Dm)) + geom_point()
# Легенда - Январь, Февраль, Март
ggplot(df, aes(Dx, Dy, color = reorder(Dm, Dx))) + geom_point()
Еще есть базовая функция relevel(df$Dm, ref = "Январь") - устанавливает "Январь" в качестве базового уровня в переменной Dm
И всё работает как надо!
Последний раз редактировалось
VistaSV30 19 май 2020, 16:38, всего редактировалось 1 раз.