当使用来自牛皮图的plot_grid绘制绘图时,较长的绘图标签向右移动

时间:2017-12-09 01:46:53

标签: r ggplot2 cowplot

我被问到this question on Twitter并认为把它放在这里可能会很好。

使用plot_grid()制作带标签的并排图表时,对于单字母标签,预期效果正常:

library(cowplot)

p1 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) + 
  geom_density(alpha = 0.7) +
  ggtitle("") + theme_minimal()

p2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) + 
  geom_density(alpha = 0.7) +
  ggtitle("") +
  scale_fill_grey() + theme_minimal()

plot_grid(p1, p2, labels = c("A", "B"))

enter image description here

但是,如果我们使用较长的字符串作为标签,则标签向右移动,并且它们移动的时间越长,字符串就越多:

plot_grid(p1, p2, labels = c("Density plot in color", "In gray"))

enter image description here

如何解决这个问题?

免责声明:我是该套餐的作者。在这里发布这个答案,希望它会有用。

1 个答案:

答案 0 :(得分:1)

hjust中参数label_xplot_grid()的默认设置针对单字母标签进行了优化,但它们不适用于较长的标签。覆盖设置可修复问题:

plot_grid(p1, p2, labels = c("Density plot in color", "In gray"),
          hjust = 0, label_x = 0.01)

enter image description here

特别是,默认hjust设置为hjust = -0.5。这会将标签向右移动相当于其宽度一半的量。这对于单个字母标签是有意义的,因为通过设置label_x = 0,我们可以使字母显示距离左边界半个字母宽度,这将适用于标签字体大小或用户可能的任何其他绘图功能选择了。

然而,将标签移动一半宽度对于较长的标签,特别是不同长度的标签,根本没有任何意义。