ggplot2绘图区域边距?

KT.*_*KT. 68 r data-visualization ggplot2

是否有一种简单的方法可以增加绘图标题和它下面的绘图区域之间的空间(带有数据的框).同样,我更喜欢在轴标题和轴标签之间留一些空格.

换句话说,有没有办法"将标题向上移动,y轴标题稍微向左移动,x轴标题稍微向下移动"?

jub*_*uba 94

您可以使用plot.marginin 调整绘图边距,theme()然后使用vjust参数移动轴标签和标题element_text().例如 :

library(ggplot2)
library(grid)
qplot(rnorm(100)) +
    ggtitle("Title") +
    theme(axis.title.x=element_text(vjust=-2)) +
    theme(axis.title.y=element_text(angle=90, vjust=-0.5)) +
    theme(plot.title=element_text(size=15, vjust=3)) +
    theme(plot.margin = unit(c(1,1,1,1), "cm"))
Run Code Online (Sandbox Code Playgroud)

会给你这样的东西:

在此输入图像描述

如果您想了解有关不同theme()参数及其参数的更多信息,您只需?theme在R提示符下输入即可.

  • plot.margin的边缘顺序是单位(c(顶部,右边,底部,左边),单位),如果有其他人想要节省查找时间的话. (27认同)
  • @generic_user:也许更容易记住,如[注释](https://ggplot2.tidyverse.org/reference/element.html):`t,r,b,l(记住顺序,想想麻烦). (6认同)
  • 谢谢!我不知道要为`grid :: units`提供什么来使这个工作用于`plot.margin`参数.事实证明你必须为`units`提供一个长度为4的数字.太糟糕了`单位'的`x`参数不能以某种方式回收.此外,您可能已经知道这一点,但值得注意/更新`opts`现在已在最新版本的ggplot2(0.9.2+)中弃用,取而代之的是`theme`,``theme_text`现在被`element_text取代. (4认同)
  • 或者记住......它只是从顶部顺时针方向:`top`,`right`,`bottom`,`left`。 (4认同)
  • 还有:“边距(t,r,l,b)” (3认同)