labeller не применяет метки с facet_wrap и возвращает NA - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь использовать функцию labeller в ggplot2 для маркировки граненых графиков.Когда я запускаю свой код, я не получаю никаких ошибок или предупреждений (что, как я знаю, не всегда означает, что все работает так, как я думаю), но вместо того, чтобы мои предопределенные метки применялись к графикам, я просто получаю «NA»как сюжетная метка.Небольшая подвыборка моих данных:

w <- structure(list(Var1 = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L), .Label = c("0", "1"), class = "factor"), Var2 = structure(c(1L, 
1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("0", "1"), class = "factor"), 
Freq = c(9L, 18L, 7L, 12L, 11L, 12L, 15L, 7L), Index = c(1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L), ComboCode = c("00", "10", "01", 
"11", "00", "10", "01", "11"), Var1Name = c("hibernate", 
"hibernate", "hibernate", "hibernate", "migrate", "migrate", 
"migrate", "migrate"), Var2Name = c("migrate", "migrate", 
"migrate", "migrate", "solitary_or_small_clusters", "solitary_or_small_clusters", 
"solitary_or_small_clusters", "solitary_or_small_clusters"
)), .Names = c("Var1", "Var2", "Freq", "Index", "ComboCode", 
"Var1Name", "Var2Name"), row.names = c("2.1", "2.2", "2.3", "2.4", 
"3.1", "3.2", "3.3", "3.4"), class = "data.frame")

panel_labels <- c("hibernate/migrate", "migrate/solitary_or_small_clusters")

, и вот мой код, использованный для создания графика:

library(ggplot2)
ggplot(w, aes(x = ComboCode, y = Freq, fill = ComboCode)) +
geom_bar(stat = "Identity") +
facet_wrap(~Index, labeller = labeller(Index = panel_labels)) +
guides(fill = FALSE)

Если кто-то может пролить свет на то, почему ярлыки не являютсяПрименительно к участкам я был бы очень признателен.

1 Ответ

0 голосов
/ 06 июня 2018

labeller нужны именованные аргументы.

Передача только вектора в labeller вернет NA:

library(ggplot2)

panel_labels <- c("hibernate/migrate", "migrate/solitary_or_small_clusters")
ggplot(w, aes(ComboCode, Freq, fill = ComboCode)) +
    geom_bar(stat = "Identity") +
    facet_wrap(~Index, labeller = labeller(Index = panel_labels)) +
    guides(fill = FALSE) +
    labs(title = "Vector")

Передача именованного вектора вернет измененные метки:

panel_labels <- c("1" = "hibernate/migrate", "2" = "migrate/solitary_or_small_clusters")
ggplot(w, aes(ComboCode, Freq, fill = ComboCode)) +
    geom_bar(stat = "Identity") +
    facet_wrap(~Index, labeller = labeller(Index = panel_labels)) +
    guides(fill = FALSE) +
    labs(title = "Named vector")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...