Есть ли способ увеличить высоту полосы strip.text в грани?
Я хотел бы, чтобы серая полоса в верхней части была более широкой, как и у, края ее немного дальше от верхней и нижней части букв (strip.text - A, B, C и т.д.). Я бы подумал, что линейка будет действовать как дополнение, но это не так.
ggplot(diamonds, aes(carat, price, fill = ..density..)) +
xlim(0, 2) + stat_binhex(na.rm = TRUE)+
facet_wrap(~ color) +
theme(strip.text = element_text(lineheight=20))
Ответы
Ответ 1
Сначала измените уровни так, чтобы они включали linebreak:
levels(diamonds$color) <- paste0(" \n", levels(diamonds$color) , "\n ")
Затем при необходимости отрегулируйте. например:
P <- ggplot(diamonds, aes(carat, price, fill = ..density..)) +
xlim(0, 2) + stat_binhex(na.rm = TRUE)+
facet_wrap(~ color)
P + theme(strip.text = element_text(size=9, lineheight=0.5))
![lineheight=0.5]()
P + theme(strip.text = element_text(size=9, lineheight=3.0))
![lineheight=3.0]()
Ответ 2
С ggplot2
2.2.0 вы можете применить трюк Рикардо, не изменяя фрейм данных, используя labeller
:
P <- ggplot(diamonds, aes(carat, price, fill = ..density..)) +
xlim(0, 2) + stat_binhex(na.rm = TRUE)+
facet_wrap(~ color, labeller = labeller(color=setNames(paste0("\n", levels(diamonds$color), "\n"), levels(diamonds$color))))
P + theme(strip.text = element_text(size=9, lineheight=0.5))