Jak utworzyć ręczną legendę w ggplot2 (z przykładami)


Często możesz chcieć dodać ręczną legendę do wykresu w ggplot2 z niestandardowymi kolorami, etykietami, tytułem itp.

Na szczęście można to łatwo zrobić za pomocą funkcjiscale_color_manual() i poniższy przykład pokazuje, jak to zrobić.

Przykład: tworzenie ręcznej legendy w ggplot2

Poniższy kod pokazuje, jak wykreślić trzy dopasowane linie regresji na wykresie w ggplot2 z niestandardową legendą ręczną:

 library (ggplot2)

#create data frame
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
  geom_point() +
  geom_smooth(se= FALSE , aes(color=' Linear ')) +
  geom_smooth(formula=y~poly(x, 2), se= FALSE , aes(color=' Quadratic ')) +
  geom_smooth(formula=y~poly(x, 3), se= FALSE , aes(color=' Cubic ')) +
  scale_color_manual(name=' Regression Model ',
                     breaks=c(' Linear ', ' Quadratic ', ' Cubic '),
                     values=c(' Cubic '=' pink ', ' Quadratic '=' blue ', ' Linear '=' purple ')) 

Korzystając z funkcjiscale_color_manual () udało nam się określić następujące aspekty legendy:

  • nazwa : Tytuł legendy
  • przerwy : Etykiety w legendzie
  • wartości : Kolory w legendzie

Pamiętaj, że możemy również użyć funkcji motywu() do zmiany rozmiaru czcionki elementów legendy:

 library (ggplot2)

#create data frame
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
  geom_point() +
  geom_smooth(se= FALSE , aes(color=' Linear ')) +
  geom_smooth(formula=y~poly(x, 2), se= FALSE , aes(color=' Quadratic ')) +
  geom_smooth(formula=y~poly(x, 3), se= FALSE , aes(color=' Cubic ')) +
  scale_color_manual(name=' Regression Model ',
                     breaks=c(' Linear ', ' Quadratic ', ' Cubic '),
                     values=c(' Cubic '=' pink ', ' Quadratic '=' blue ', ' Linear '=' purple '))+
 theme(legend. title =element_text(size= 20 ),
       legend. text =element_text(size= 14 ))

Należy pamiętać, że zwiększono rozmiar czcionki etykiet tytułu i podpisu.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w ggplot2:

Jak zmienić pozycję legendy w ggplot2
Jak zmienić rozmiar legendy w ggplot2
Jak zmienić tytuł legendy w ggplot2
Jak zmienić etykiety legendy w ggplot2

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *