2012-04-26 81 views
4

似乎在标题周围有一些填充,我无法弄清楚如何改变,有什么想法?ggplot2标题填充?如何调整?

xy <- data.frame(x=1:10, y=10:1) 
plot <- ggplot(data = xy)+ geom_point(aes(x = x, y = y)) 
plot <- plot + opts(plot.background = theme_rect(colour = 'purple', fill = 'pink', size = 3, linetype='dashed')) 
plot 
plot + opts(title = 'Graph Title') 
plot 

如果你运行这个,持有行屏幕(老同学,我知道)在一张纸上,从标题的G和T的顶部,然后再次运行图,你会看到你的报纸上面有些灰色。我只能假设这是标题周围的一些填充指示?或者,同样,如果您在没有标题的情况下运行它,并将纸张(上图)与粉色背景的末尾对齐,则使用标题运行它,G和T的顶部位于纸张的下面。

例基本上是从https://github.com/hadley/ggplot2/wiki/Graph-Panel-Attributes

这表明有一条线高度的选择,但它似乎什么都不做http://www.inside-r.org/packages/cran/ggplot2/docs/theme_text

+0

我可以复制你的问题,而是摆弄了几分钟后,我无法找到一个解决方案。希望有更好的ggplot2-fu的人会看到这个。有人喜欢@kohske。 – Andrie 2012-04-26 08:22:02

+0

标题具有线高度的一半的填充。 – kohske 2012-04-26 08:34:41

+0

我只在我的所有pdf上使用'pdfcrop'。用填充节省麻烦。 – csgillespie 2012-04-26 08:38:45

回答

3

所以这里是一个黑客:

p <- plot + opts(title = 'Graph Title') 
p <- ggplot_gtable(ggplot_build(p)) 
p$heights[[2]] <- p$heights[[2]]-unit(0.5, "lines") 
grid.draw(p) 

此代码移除填充。

但我建议发送功能请求:https://github.com/hadley/ggplot2/issues?milestone=

+0

看着'p $ layout'对我来说'p $ heights'中哪个项目对应'p $ layout $ name =='title' '。这是一个固定的订单,否则? – baptiste 2012-04-26 09:24:21

+0

现在修正了,但是从布局获得位置会更好:'子集(p $ layout,name ==“title”)$ t' – kohske 2012-04-26 09:28:17

+0

合理,谢谢 – baptiste 2012-04-26 09:41:53