当ggtitle包含字母q,y,p,g,j时,如何保持绘图尺寸相等

时间:2017-09-06 12:30:46

标签: r ggplot2

我注意到在ggplot中添加包含小写字母q,y,p,g,j的标题时,图的尺寸会被修改。

full view comparison

变焦

zoomed-in comparison

*红线已手动添加

如您所见,当我将上述字母之一添加到标题时,图表的高度会变小

如何在不同标题的几个地块之间保持高度不变?

用于生成两个图的代码:

# plot 1
ggplot(mpg, aes(factor(cyl), hwy)) + 
  geom_point(size=4) + 
  theme_bw() + 
  ggtitle("main")

# plot 2
ggplot(mpg, aes(factor(cyl), hwy)) + 
  geom_point(size=4) + 
  theme_bw() +
  ggtitle("pmain")

1 个答案:

答案 0 :(得分:3)

你可以添加一个幻影小写字母,但这需要将你的文本转换成一个plotmath表达式,这可能有一些缺点,fontwise

.st <- function(s){
  bquote(phantom("tp")*.(s))
}

# plot 1
p1 <- ggplot(mpg, aes(factor(cyl), hwy)) + 
  geom_point(size=4) + 
  theme_bw() + 
  ggtitle(.st("main"))

# plot 2
p2 <- ggplot(mpg, aes(factor(cyl), hwy)) + 
  geom_point(size=4) + 
  theme_bw() +
  ggtitle(.st("pmain"))

grid.arrange(p1,p2,ncol=2)

enter image description here