Проблема просто в том, что вы рисуете серый фон с вашим вызовом geom_rect
, который по умолчанию серый. Вы можете сделать его белым или, что еще лучше, удалить его и использовать шкалы и темы, чтобы придать сюжету желаемый вид.
Чтобы удалить цветовую шкалу из легенды, вы можете добавить + scale_color_discrete(guide = guide_none())
к вашему сюжету .
Символы обрезаются (и не полностью совпадают с метками), потому что каждый из аспектов на самом деле сохраняет небольшое пространство для всех групп. Поэтому вам нужно указать scales = "free_y"
, чтобы выровнять все, увеличить ширину полос погрешностей и предотвратить обрезку символов.
Вы также можете выбрать глобальную тему, которая требует меньше индивидуальных настроек параметров theme
, и вы можете предпочесть, чтобы метки полос были выровнены по правому краю и были внешними по отношению к линии оси y.
ggplot(early,aes(x = odds, y = group)) +
geom_errorbarh(aes(xmin = low, xmax = high)) +
geom_point(aes(colour = group, shape = death), size = 3) +
scale_color_discrete(guide = guide_none()) +
coord_cartesian(xlim = c(20, 600)) +
facet_grid(labels ~ ., switch = "y", scales = "free_y") +
labs(title = "Race-Stratified Odds Ratios by Death Category",
x = "Odds Ratios",
y = "Maternal Race Group") +
theme_classic() +
theme(panel.spacing.y = unit(0, "points"),
axis.text.y = element_blank(),
axis.ticks.length.y = unit(0, "points"),
strip.placement = "outside",
strip.text.y.left = element_text(angle = 0, hjust = 1),
strip.background.y = element_blank(),
legend.box.margin = margin(6, 6, 6, 6))
введите описание изображения здесь