#r #ggplot2
#r #ggplot2
Вопрос:
Я действительно борюсь с чем-то, что должно быть простым, чтобы изменить метки на моем графике facet_grid, но это не работает. Это график убийств одного вида животных в зависимости от количества туристов в районе за три периода:
Мне нужно изменить метки «1», «2» и «3» справа на графике, и я подумал, что этот скрипт должен это сделать:
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"))
Данные:
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))
Ответ №1:
Попробуйте этот подход. Это может быть способом взлома графика, определения новых меток с использованием mutate()
и форматирования как фактора на основе желаемых меток. Здесь код:
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"))
Вывод:
Или, если проблема заключается только в добавлении суффикса 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"))
Вывод: