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

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 12 май 2020, 16:06

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

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

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()
Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 май 2020, 20:18


Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 13 май 2020, 13:52

Эврика!
Оказывается в 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 раз.
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 13 май 2020, 15:15

Поля легенды настраиваются следующим образом:

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

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

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей