Hoe u een horizontale lijn toevoegt aan een plot en legenda in ggplot2


U kunt de volgende syntaxis gebruiken om een horizontale lijn toe te voegen aan een plot in ggplot2, en vervolgens de horizontale lijn ook als element in de legenda toevoegen:

 library (ggplot2)

#create data frame with values to plot
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)

Door een afzonderlijk gegevensframe te maken dat alleen de waarde van het y-snijpunt van de horizontale lijn bevat, kunnen we de horizontale lijn aan de plot toevoegen en deze automatisch aan de legenda toevoegen.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Voeg een horizontale lijn toe aan de plot en legenda in ggplot2

Stel dat we het volgende dataframe in R hebben dat informatie bevat over basketbalspelers van verschillende teams:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#view data frame
df

   team assists points
1 To 1 4
2 to 3 8
3 to 3 12
4 to 4 10
5 to 5 18
6 B 7 25
7 B 7 20
8 B 9 28
9 B 9 33
10 B 10 35

Laten we zeggen dat we een spreidingsdiagram in ggplot2 willen maken om de punt- en hulpwaarden voor elke speler te visualiseren op basis van hun team, en vervolgens een horizontale lijn toevoegen op y = 22 om een „drempel“ te definiëren voor het verschil tussen goed en slecht spelers.

We kunnen hiervoor de volgende syntaxis gebruiken:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

ggplot2 voegt een horizontale lijn toe aan de legenda

Merk op dat de legenda rechts van de plot cirkels bevat die aangeven welke punten op de plot tot welke teams behoren en dat er ook een horizontale lijn aan de legenda is toegevoegd om de grenslijn weer te geven.

Als u het horizontale regelbijschrift in de legenda wilt wijzigen, bewerkt u eenvoudigweg de tekst in de kolom Rijen in het Break Data Frame.

We kunnen bijvoorbeeld de volgende syntaxis gebruiken om het label van de horizontale lijn te wijzigen in „Goed versus Kwaaddrempel“:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff of Good vs. Bad ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

Merk op dat het label van de horizontale lijn in de legenda is gewijzigd.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in ggplot2 kunt uitvoeren:

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

Einen Kommentar hinzufügen

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