ggplot2绘图区域边距?


86

有没有一种简单的方法来增加打印标题与其下方的打印区域(带有数据的框)之间的空间。同样,我希望在轴标题和轴标签之间留一些空间。

换句话说,是否有办法“将标题稍微上移,将y轴标题稍微向左移,将x轴标题向下移”?


1
您始终可以将一些"\n"字符粘贴到标题上以强制换行。
joran 2012年

Answers:


113

您可以使用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"))

会给你这样的东西:

在此处输入图片说明

如果需要有关不同theme()参数及其参数的更多信息,只需?theme在R提示符下输入。


4
谢谢!我不确定要提供什么来grid::units使这项工作适用于该plot.margin论点。原来您必须提供一个长度为4的数字给units。可惜的是,该x论点units没有以某种方式被回收。另外,您可能已经知道了这一点,但是值得注意/更新opts的最新版本ggplot2(0.9.2+)中已弃用theme,而theme_text现在已将替换为element_text
Paul McMurdie 2012年

44
如果其他人想节省查找时间,plot.margin的边沿顺序为unit(c(top,right,bottom,left),units)。
强大的力量,

16
@generic_user:也许更容易记住的注意这里t, r, b, l (To remember order, think trouble).

3
另外要记住......这只是顺时针方向从顶部:toprightbottomleft
spops

1
也:margin(t, r, l, b)
Brian D
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.