Jak dodać linię poziomą do wykresu i legendy w ggplot2


Możesz użyć poniższej składni, aby dodać linię poziomą do wykresu w ggplot2, a następnie dodać linię poziomą jako element legendy:

 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)

Tworząc osobną ramkę danych zawierającą tylko wartość przecięcia z osią y linii poziomej, możemy dodać linię poziomą do wykresu i automatycznie dodać ją do legendy.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: dodaj poziomą linię do wykresu i legendy w ggplot2

Załóżmy, że mamy w R następującą ramkę danych zawierającą informacje o koszykarzach z różnych drużyn:

 #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

Załóżmy, że chcemy utworzyć wykres rozrzutu w ggplot2, aby zwizualizować punkty i wartości pomocnicze dla każdego gracza na podstawie jego drużyny, a następnie dodać poziomą linię w miejscu y = 22, aby zdefiniować „próg” różnicy między dobrem a złem gracze.

W tym celu możemy użyć następującej składni:

 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 dodaje poziomą linię do legendy

Należy zwrócić uwagę, że legenda po prawej stronie wykresu zawiera okręgi wskazujące, które punkty na wykresie należą do których drużyn, a do legendy dodano także poziomą linię przedstawiającą linię odcięcia.

Jeśli chcesz zmienić podpis linii poziomej w legendzie, po prostu edytuj tekst w kolumnie Wiersze w ramce danych przerwania .

Na przykład możemy użyć następującej składni, aby zmienić etykietę linii poziomej na „Próg dobra i zła”:

 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) 

Należy zwrócić uwagę, że etykieta linii poziomej w legendzie uległa zmianie.

Dodatkowe zasoby

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

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

Dodaj komentarz

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