Это расширение / хак к аналогичному вопросу, который я задал здесь .
Я создал график в ggplot
, и я хочу покрыть заголовки facet_grid
прямоугольником.
Используя geom_rect
Мне удалось распределить прямоугольники по каждому фасету. Тем не менее, как я могу распределить прямоугольники по заголовкам?
Текущий график:
Ожидаемый график:
Пример данных и скрипт:
library(tidyverse)
df <- head(mtcars, 5)
plot <- df %>%
ggplot(aes(gear, disp)) +
geom_bar(stat = "identity") +
facet_grid(~am + carb,
space = "free_x",
scales = "free_x") +
ggplot2::theme(
panel.spacing.x = unit(0,"cm"),
axis.ticks.length=unit(.25, "cm"),
strip.placement = "outside",
legend.position = "top",
legend.justification = "center",
legend.direction = "horizontal",
legend.key.size = ggplot2::unit(1.5, "lines"),
# switch off the rectangle around symbols
legend.key = ggplot2::element_blank(),
legend.key.width = grid::unit(2, "lines"),
# # facet titles
strip.background = ggplot2::element_rect(
colour = "black",
fill = "white"),
panel.background = ggplot2::element_rect(
colour = "white",
fill = "white"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
plot +
geom_rect(aes(xmin=2.4, xmax=2.7, ymin=400, ymax=300),
color="black", fill="white") +
geom_text(aes(x = 2.5, y = 400, label="world"), size=2)