Naprawdę zmagam się z czymś, co powinno być proste, aby zmienić etykiety na mojej działce Facet_grid, ale nie działa. Jest to fabuła zabójstw z jednego gatunków zwierząt jako funkcji liczby turystów w obszarze w trzech okresach:

enter image description here

Muszę zmienić etykiety "1", "2" i "3" na prawo na działce i pomyślałem, że ten skrypt powinien to zrobić:

library(ggplot2)
new_labels <- c("1" = "cat.1", "2" = "cat.2", "3" = "cat.3")
ggplot(pe_ki, aes(people,kills)) +
  geom_point() +
  theme_bw() +
  facet_grid(class~category, labeller = labeller(category = new_labels)) +
  facet_grid(rows=vars(period)) +
  stat_smooth(method="glm", method.args = list(family = "poisson"),col="black") +
  theme(strip.background = element_rect(fill="lightblue", size=1, color="darkblue"))

Dane:

dput(pe_ki)
structure(list(period = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), month = c("JAN", 
"FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", 
"NOV", "DEC", "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", 
"AUG", "SEP", "OCT", "NOV", "DEC", "JAN", "FEB", "MAR", "APR", 
"MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"), people = c(4068L, 
7251L, 14384L, 20513L, 18748L, 17760L, 23433L, 22878L, 12815L, 
8101L, 7477L, 5018L, 5063L, 11103L, 20946L, 32192L, 22665L, 29605L, 
37590L, 36692L, 16474L, 8989L, 5729L, 3909L, 8391L, 18638L, 31223L, 
40583L, 26889L, 40074L, 53218L, 52087L, 23873L, 13694L, 9354L, 
9822L), kills = c(2L, 1L, 3L, 5L, 3L, 0L, 4L, 5L, 1L, 1L, 0L, 
1L, 0L, 2L, 1L, 1L, 4L, 1L, 3L, 4L, 0L, 0L, 0L, 1L, 0L, 0L, 2L, 
6L, 1L, 2L, 2L, 3L, 1L, 0L, 0L, 0L)), class = "data.frame", row.names = c(NA, 
-36L))
0
Dag 10 październik 2020, 21:45

1 odpowiedź

Najlepsza odpowiedź

Spróbuj tego podejścia. Może to być sposób na włamanie działki, definiując nowe etykiety za pomocą mutate() i sformatowanie jako czynnik na podstawie pożądanych etykiet. Tutaj kod:

library(dplyr)
library(ggplot2)
#Code
new_labels <- c("cat.1","cat.2","cat.3")
#Plot
pe_ki %>%
  mutate(period=factor(period,levels = unique(period),
                       labels = new_labels,ordered = T)) %>%
  ggplot(aes(people,kills)) +
  geom_point() +
  theme_bw() +
  facet_grid(class~category) +
  facet_grid(rows=vars(period)) +
  stat_smooth(method="glm", method.args = list(family = "poisson"),col="black") +
  theme(strip.background = element_rect(fill="lightblue", size=1, color="darkblue"))

Wynik:

enter image description here

Lub jeśli problem dodaje tylko przyrostek cat.:

#Plot 2
pe_ki %>%
  mutate(period=paste0('cat.',period)) %>%
  ggplot(aes(people,kills)) +
  geom_point() +
  theme_bw() +
  facet_grid(class~category) +
  facet_grid(rows=vars(period)) +
  stat_smooth(method="glm", method.args = list(family = "poisson"),col="black") +
  theme(strip.background = element_rect(fill="lightblue", size=1, color="darkblue"))

Wynik:

enter image description here

2
Duck 10 październik 2020, 18:50