Страница 1 из 1

Упорядочить названия в легенде

Добавлено: 12 май 2020, 16:06
VistaSV30
Добрый день!
Подскажите как поменять порядок месяцев в легенде, чтобы было - Январь, Февраль, Март.
Изображение

Код: Выделить всё

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()
Спасибо!

Re: Упорядочить названия в легенде

Добавлено: 12 май 2020, 20:18
gamm

Re: Упорядочить названия в легенде

Добавлено: 13 май 2020, 13:52
VistaSV30
Эврика!
Оказывается в 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

И всё работает как надо!

Re: Упорядочить названия в легенде

Добавлено: 13 май 2020, 15:15
VistaSV30
Поля легенды настраиваются следующим образом:

Код: Выделить всё

theme(legend.margin = margin(t = 0, r = -0.5, b = 0.3, l = 0.5, unit = "cm"))
Опять оказалось - всё просто!
Почти две недели не мог понять как настроить размеры полей