2013-10-23 40 views
7

編輯:問題是由於我錯誤地嘗試更改theme(title = element_text()),因爲我需要更改theme(plot.title(element_text())。我早就注意到了這個有我更仔細的審查,該theme() documentation.如何更改ggplot標題的垂直位置而不改變軸標籤對齊

原貼:

更改標題垂直對齊改變x和y軸標籤的位置爲好。這是一個錯誤?或者我誤解了theme()的功能?我正在運行ggplot2版本0.9.3.1

最小可重現的示例。

require(ggplot2) 
set.seed(12345) 
x <- rnorm(100,10,0.5) 
y <- x * 3 + rnorm(100) 
df <- data.frame(y,y) 

的默認標題是太靠近圖對我的口味....

ggplot(df,aes(x,y)) + 
geom_point() + 
labs(title="My Nice Graph") 

enter image description here

當我嘗試移動標題,軸標籤也動了,在圖表上非法地繪製。

ggplot(df,aes(x,y)) + 
geom_point() + 
labs(title="My Nice Graph") + 
theme(title = element_text(vjust=2)) 

enter image description here

+1

使用'theme(plot.title = element_text(vjust = 2))'。看看[這裏](http://docs.ggplot2.org/current/theme.html):「標題:所有標題元素:情節,軸,傳說」。 – Henrik

回答

24

你想plot.titletitle

labs(title="My Nice Graph") + theme(plot.title = element_text(vjust=2)) 

備用速戰速決是增加一個換行符:

labs(title="My Nice Graph\n") 
+0

arrrgh。非常感謝里卡多。所以我想我是在無意中在全球設置vjust ... –

+0

換行符工作,但@ george-dontas的'margin'方法似乎工作得好多了(對我來說至少) –

6

vjust不適用於我(我也認爲值應該在[0,1])。我使用

... + 
theme(
    plot.title = element_text(margin=margin(b = 10, unit = "pt")) 
) 
+0

由於未知原因vjust不起作用我也是,保證金呢。 – fred