/ / geom_bar ширина в ggplot2 [дублікат] - r, ggplot2

geom_bar ширина в ggplot2 [дублікат] - r, ggplot2

Я створюю гранований бархарт з 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);

введіть опис зображення тут