Jak utworzyć legendę w ggplot2 z wieloma liniami
Możesz użyć następującej składni, aby utworzyć legendę w ggplot2 z wieloma liniami:
ggplot(df, aes(x=x_var, y=y_var, color=group_var)) + geom_point() + guides(color=guide_legend(nrow= 2 , byrow= TRUE ))
Wartość argumentu nrow określa liczbę wierszy używanych w legendzie.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: utwórz legendę w ggplot2 z wieloma liniami
Załóżmy, że mamy następującą ramkę danych w R, która zawiera informacje o różnych koszykarzach:
#create data frame df <- data. frame (team=c('Mavs', 'Heat', 'Nets', 'Lakers', 'Suns', 'Cavs'), points=c(24, 20, 34, 39, 28, 29), assists=c(5, 7, 6, 9, 12, 13)) #view data frame df team points assists 1 Mavs 24 5 2 Heat 20 7 3 Nets 34 6 4 Lakers 39 9 5 Suns 28 12 6 Cavs 29 13
Jeśli utworzymy wykres rozrzutu w ggplot2 bez określenia liczby linii do użycia w legendzie, ggplot2 domyślnie umieści etykietę w każdej linii:
library (ggplot2)
#create default scatterplot
ggplot(df, aes(x=assists, y=points, color=team)) +
geom_point(size= 3 )
Aby utworzyć legendę składającą się z wielu linii, musimy użyć funkcji Guides() z argumentem nrow :
library (ggplot2)
#create scatterplot with two rows in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
geom_point(size= 3 ) +
guides(color=guide_legend(nrow= 2 , byrow= TRUE ))
Zauważ, że legenda ma teraz dwie linie.
Jeśli chcemy również zmienić lokalizację legendy, możemy skorzystać z funkcji motywu() z argumentem legenda.position :
library (ggplot2)
#create scatterplot with two rows in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
geom_point(size= 3 ) +
theme(legend. position = ' bottom ') +
guides(color=guide_legend(nrow= 2 , byrow= TRUE ))
Legenda znajduje się teraz na dole działki i ma dwie linie.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w ggplot2:
Jak zmienić tytuł legendy w ggplot2
Jak zmienić rozmiar legendy w ggplot2
Jak zmienić pozycję legendy w ggplot2