Jak zmienić kolejność aspektów w ggplot2 (z przykładem)
Możesz użyć następującej podstawowej składni, aby określić kolejność aspektów w ggplot2:
p+
facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: zmień kolejność aspektów w ggplot2
Załóżmy, że mamy następującą ramkę danych w R:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
points=c(8, 14, 20, 22, 25, 29, 30, 31),
assists=c(10, 5, 5, 3, 8, 6, 9, 12))
#view data frame
df
team points assists
1 to 8 10
2 to 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12
Poniższy kod pokazuje, jak użyć funkcji facet_grid() do utworzenia siatki wyświetlającej wykres rozrzutu asyst i punktów dla każdej drużyny:
library (ggplot2)
#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(.~team)
Domyślnie ggplot2 porządkuje wykresy rozrzutu na podstawie wartości, które pojawiają się jako pierwsze w zmiennej zespołu ramki danych.
Możemy jednak przekonwertować zespół na zmienną czynnikową i użyć argumentu poziomów , aby określić kolejność, w jakiej zespoły powinny być umieszczane na wykresie:
library (ggplot2)
#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(~factor(team, levels=c(' C ', ' D ', ' A ', ' B ')))
Należy zauważyć, że chmury punktów są teraz uporządkowane zgodnie z kolejnością określoną w argumencie poziomów : C, D, A, B.
Zaletą stosowania tego podejścia jest to, że tak naprawdę nie zmieniamy danych źródłowych.
Zamiast tego zmieniamy jedynie poziomy w funkcji facet_grid() .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w ggplot2:
Jak zmienić rozmiar czcionki w ggplot2
Jak usunąć legendę w ggplot2
Jak obracać etykiety osi w ggplot2