首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用来自cowplot的plot_grid排列图时,较长的图标签会向右移动

使用来自cowplot的plot_grid排列图时,较长的图标签会向右移动
EN

Stack Overflow用户
提问于 2017-12-09 09:46:53
回答 1查看 727关注 0票数 3

有人问我this question on Twitter,我想把它放在这里可能会很好。

使用plot_grid()制作带标签的并排绘图时,单字母标签的效果与预期一致:

代码语言:javascript
复制
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"))

但是,如果我们使用更长的字符串作为标签,标签会向右移动,并且移动的越多,字符串越长:

代码语言:javascript
复制
plot_grid(p1, p2, labels = c("Density plot in color", "In gray"))

如何解决这个问题?

免责声明:我是这个包的作者。在这里张贴这个答案,希望它将是有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-09 09:46:53

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

代码语言:javascript
复制
plot_grid(p1, p2, labels = c("Density plot in color", "In gray"),
          hjust = 0, label_x = 0.01)

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

但是,将标签的宽度减半对于较长的标签没有任何意义,尤其是不同长度的标签。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47724511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档