有没有办法增加一个方面的strip.text栏的高度?

时间:2013-07-24 04:27:28

标签: r ggplot2

我希望顶部的灰色条更宽,因为它的边缘距离字母的顶部和底部稍远一些(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)) 

2 个答案:

答案 0 :(得分:24)

首先,修改级别,使其包含换行符:

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

答案 1 :(得分:1)

使用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))