Я створюю гранований бархарт з ggplot. У мене є проблема, що нижче MWE генерує графік внизу. Я хотів би створити бари, які мають однакову ширину в обох аспектах. Як мені це зробити?
library(ggplot2)
df = data.frame(x = as.factor(c(1, 2, 3, 1, 2)),
y = c(2, 3, 4, 5, 6),
g = c(1, 1, 1, 2, 2));
ggplot(df, aes(x = 1, y = y, fill = x)) +
geom_bar(stat = "identity",
position = "dodge") +
facet_wrap(~ g);
Відповіді:
3 для відповіді № 1Не впевнений, що це те, що вам потрібно. Створення власника місця для відсутнього факторного рівня за допомогою complete
функція від tidyr
Пакет також може зробити ширину бруску однаковою на двох гранях. Недоліком є те, що другий сюжет інтруктований.
ggplot(tidyr::complete(df, x, g), aes(x = 1, y = y, fill = x)) +
geom_bar(stat = "identity", position = "dodge") +
facet_wrap(~ g);