Что такое поле "N = 1" в моей легенде R geom_bar, и как мне удалить его?
Вот эти данные:
structure(list(Group.1 = c((name list)
), Group.2 = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 3L, 3L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 5L, 5L, 5L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Radio", "Video", "Engineering",
"800Mhz", "PSSRP", "Other"), class = "factor"), x = c(93.5, 208.75,
214, 48, 66.33, 71.5, 19.5, 64.75, 17, 39, 30.75, 96.75, 30,
19, 32.5, 12.75, 47.25, 14, 22.25, 12, 3, 128.5, 9.5, 303.2,
290.35, 364.05, 333.25, 11.75, 553.25, 423, 6, 496)), .Names = c("Group.1",
"Group.2", "x"), row.names = c(NA, -32L), class = "data.frame")
работает этот сюжет:
ggplot(data = HrSums, aes(x = Group.1, y = x, fill = Group.2)) +
geom_bar(stat = "sum", position = position_stack(reverse = TRUE)) +
coord_flip() +
labs(title = "Hours Billed, by Technician and Shop", y = "Hours Billed",
x = "Technician", fill = "Shop")
Я получаю эту гистограмму:
Что такое поле "n" и как я могу удалить его (только) из легенды?
1 ответ
Я считаю, что поле N потому что geom_bar
ожидает подсчитать, сколько раз каждая комбинация Group.1
а также Group.2
происходит, но вместо этого вы даете y
ценность в вашем aes
, geom_bar
можно использовать другую статистику вместо подсчета, но если вы хотите получить суммы значений, она ожидает weight
эстетичным. Вот два способа сделать это, один с помощью weight = x
в geom_bar
и тот, который использует dplyr
функции для расчета сумм заранее, а затем поставляет это y
,
library(tidyverse)
ggplot(df, aes(x = Group.1, fill = Group.2)) +
geom_bar(aes(weight = x), position = position_stack(reverse = T)) +
coord_flip()
df_sums <- df %>%
group_by(Group.1, Group.2) %>%
summarise(x = sum(x))
ggplot(df_sums, aes(x = Group.1, y = x, fill = Group.2)) +
geom_col(position = position_stack(reverse = T)) +
coord_flip()
Если вы включите следующее, вы увидите только ту эстетику, которую ожидаете:
show.legend = c(
"x" = TRUE,
"y" = TRUE,
"alpha" = FALSE,
"color" = FALSE,
"fill" = TRUE,
"linetype" = FALSE,
"size" = FALSE,
"weight" = FALSE
)
Смотрите аргумент show.legend на? Geom_bar:
show.legend логично. Должен ли этот слой быть включен в легенды? NA, по умолчанию, включает в себя отображение любой эстетики. ЛОЖЬ никогда не включает, и ИСТИНА всегда включает. Это также может быть именованный логический вектор для точного выбора эстетики для отображения.