Een handmatige legenda maken in ggplot2 (met voorbeelden)


Vaak wilt u misschien een handmatige legenda toevoegen aan een plot in ggplot2 met aangepaste kleuren, labels, titel, enz.

Gelukkig is dit eenvoudig te doen met de functie scale_color_manual() en het volgende voorbeeld laat zien hoe u dit moet doen.

Voorbeeld: een handmatige legenda maken in ggplot2

De volgende code laat zien hoe u drie gepaste regressielijnen in een plot in ggplot2 kunt plotten met een aangepaste handmatige legenda:

 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 ')) 

Met behulp van de functie scale_color_manual() konden we de volgende aspecten van de legenda specificeren:

  • naam : De titel van de legende
  • breaks : Labels in de legenda
  • waarden : De kleuren in de legenda

Merk op dat we ook de functie thema() kunnen gebruiken om de lettergrootte van legenda-elementen te wijzigen:

 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 ))

Houd er rekening mee dat de lettergrootte van de titel- en bijschriftlabels is vergroot.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in ggplot2 uitvoert:

Hoe de legendapositie in ggplot2 te veranderen
Hoe de legendagrootte in ggplot2 te veranderen
Hoe de titel van de legenda in ggplot2 te veranderen
Hoe legendalabels in ggplot2 te veranderen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert