2012-04-26 84 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