如何在不改变轴标签对齐的情况下改变ggplot标题的垂直位置

时间:2013-10-23 20:06:49

标签: r ggplot2

编辑:问题是由于我错误地尝试更改theme(title = element_text()),当我需要更改theme(plot.title(element_text())时。我会注意到,我已经仔细审查了theme() documentation.

原帖:

更改标题垂直对齐也会改变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

2 个答案:

答案 0 :(得分:25)

您希望plot.title不是title

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

替代快速解决方法是添加换行符:

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

答案 1 :(得分:6)

vjust对我不起作用(我也认为值应该在[0,1]中)。我用

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