Вы можете изменить интервал между полями, добавив position=position_dodge(width =...))
к geom_boxplot()
и поиграйте с выбором ширины, пока не получите желаемый результат.
ggplot(data = df, aes(Farm, Outcome, col = Freshness, fill = Fruit)) +
geom_boxplot(position=position_dodge(width = 1)) +
scale_color_manual(values = c("lightslategrey", "black"), labels = c("Stale", "Fresh")) +
scale_fill_manual(values = c("red", "orange", "yellow"), labels = c("Apples", "Oranges", "Bananas"))
Вот оригинал для сравнения. И модифицированный (с width=1
) Увеличение расстояния между категориями по оси X - это другая проблема, и ее сложнее решить. Один простой обходной путь - использовать фасет со свободными масштабами по оси X.
ggplot(data = df, aes(Farm, Outcome, col = Freshness, fill = Fruit)) +
geom_boxplot(position=position_dodge(width = 1)) +
scale_color_manual(values = c("lightslategrey", "black"), labels = c("Stale", "Fresh")) +
scale_fill_manual(values = c("red", "orange", "yellow"), labels = c("Apples", "Oranges", "Bananas")) +
facet_wrap(~Farm, ncol = 2, scales = "free_x")