Я немного застрял в следующем: я хочу расположить несколько (gg) графиков в сетке с cowplot::plot_grid
. Ниже приведен пример с двумя ggplots (g_bottom
и g_top
), оба граненые. В нижней части метки фасетов удалены, поскольку они являются избыточными. Тем не менее, кажется, что остается контур фона или около того, действуя как вырезание белой линией на верхнем графике (см. Изображение ниже).
Как я мог это исправить?
Что я пробовал до сих пор:
Вместо strip.background = element_blank()
Я также попытался strip.background = element_rect(fill = NA, color = NA)
в theme
, но безуспешно.
Если я установлю rect = element_blank()
, это как-то работает, но я теряю всю границу графика. Я тогда прыгал, что rect = element_rect(fill = "transparent", colour = NA)
сделает это, но все равно безуспешно. Я также только что попробовал colour = NULL
или colour = "transparent"
также безуспешно.
library(ggplot2)
library(cowplot)
g <- ggplot(mpg, aes(class)) +
geom_bar() +
facet_grid(. ~ year) +
theme_bw()
g_bottom <- g +
theme(
strip.text = element_blank(),
strip.background = element_blank(),
# strip.background = element_rect(fill = NA, color = NA) # didn't work either
# Was hoping that this will do the trick, bot no success:
rect = element_rect(fill = "transparent", color = NA)
)
g_top <- g +
labs(x = element_blank()) +
theme(
axis.text.x = element_blank(),
axis.ticks.x = element_blank()
)
plot_grid(g_top, NULL, g_bottom,
# used NULL to be able to tweak spacing between plots with rel_heights
align = "hv",
nrow = 3,
rel_heights = c(1, -0.2, 1))
Я мог бы обойти проблему, не оглядываясь и не создавая каждый из 4 графиков по отдельности, но, возможно, есть более простое решение с некоторым аргументом theme
, который я слишком ослепил, чтобы видеть что-либо еще ...