Подтвердить что ты не робот

Удалить границу полосы фона на панели

У меня есть следующий тип сюжета и вы хотите, чтобы каждый текст полосы над отдельным полем фасета был "типом", но у него не было серого фона по умолчанию и черная рамка вокруг strip.background. Я цвет его белый, который близок к тому, что я хочу, но хотел бы, чтобы нижний край strip.background или верхнего края panel.border был черным.

enter image description here

library(ggplot2)

ggplot(mtcars, aes(mpg, hp)) + geom_point() +
    facet_wrap(~carb, ncol = 3) + theme_bw() +
    theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        strip.background = element_rect(colour="white", fill="white"),
        panel.border = element_rect(colour = "black"))
4b9b3361

Ответ 1

Если вы установите element_blank() для strip.background и сохраните element_rect(colour="black") для panel.border, то верхний край panel.border будет черным.

ggplot(mtcars, aes(mpg, hp)) + geom_point() +
  facet_wrap(~carb, ncol = 3) + theme_bw() +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        strip.background = element_blank(),
        panel.border = element_rect(colour = "black"))

enter image description here

Ответ 2

Настройка panel.border может охватывать ваш график, если вы также не добавили fill=NA в panel.border:

theme(panel.border = element_rect(fill = NA, colour = "black"))

Можно также использовать:

theme(panel.background = element_rect(fill = NA, color = "black")

источник (раздел "Атрибуты панели" )

Ответ 3

Вы можете попробовать:

 strip.background = element_rect(colour=NA, fill=NA),
 panel.border = element_rect(fill = NA, color = "black"))