Переименовать значения условных обозначений в R

#r #ggplot2 #axis-labels

#r #ggplot2 #ось-метки

Вопрос:

С ggplot2 помощью я научился переименовывать оси X, оси Y и отдельные легенды. Однако я также хочу переименовать значения условных обозначений.

В качестве примера, для простоты я использовал 0 для мужчин и 1 для женщин в наборе данных, и когда я отображаю его и сопоставляю пол с эстетикой, я не хочу, чтобы легенда считывала 0 или 1 для значений данных, но для мужчин и женщин.

Или, в приведенном ниже примере, вместо «4», «f» и «r» использование «привод на 4 колеса», «привод на переднее колесо», «привод на заднее колесо» сделало бы график намного проще для понимания.

 library(tidyverse)

ggplot(data = mpg)   geom_point(mapping = aes(x = displ, y = hwy, color = drv))   labs(x = "Engine Size (Liters)", y = "Fuel Efficiency (Miles per Gallon)", color = "Drive")
 

введите описание изображения здесь

  • Одним из вариантов было бы открыть файл Excel и изменить все 0 и 1 в определенном столбце на «мужской» и «женский».
  • Другим вариантом было бы переименовать значения внутри R, но я абсолютно не представляю, как это сделать. Я очень новичок в R.

Я надеюсь на простой способ переименования значений, отображаемых в легенде.

Ответ №1:

Вы можете использовать labels аргумент в масштабе для настройки маркировки. Вы можете предоставить функцию или вектор символов для labels аргумента.

 library(tidyverse)

ggplot(data = mpg)   
  geom_point(mapping = aes(x = displ, y = hwy, color = drv))   
  labs(x = "Engine Size (Liters)", y = "Fuel Efficiency (Miles per Gallon)", color = "Drive")  
  scale_colour_discrete(
    labels = c("4" = "4 wheel drive",
               "f" = "front wheel drive",
               "r" = "rear wheel drive")
  )
 

Создано 2020-12-23 пакетом reprex (версия 0.3.0)

Комментарии:

1. Большое вам спасибо. Просто для меня, чтобы убедиться, что я понимаю: то же самое будет работать с scale_shape_discrete , scale_linetype_discrete и так далее?

2. Да, это будет работать даже с непрерывными масштабами (но должно соответствовать длине вычисленных или предоставленных разрывов) и масштабами положения ( scale_x/y_discrete/continuous ). Итак, любой масштаб, который по существу создает метки.

Ответ №2:

Вы могли recode бы использовать значения перед построением графика :

 library(dplyr)
library(ggplot2)

mpg %>%
  mutate(drv = recode(drv, "4" = "4 wheel drive", 
                            "f" = "front wheel drive", 
                            "r" = "rear wheel drive")) %>%
  ggplot()   
  geom_point(aes(x = displ, y = hwy, color = drv))   
  labs(x = "Engine Size (Liters)", 
       y = "Fuel Efficiency (Miles per Gallon)", 
       color = "Drive")
 

введите описание изображения здесь