在标题内垂直调整标题 - vjust not working

Har*_*hid 6 plot r ggplot2

我想将标题放在图中而不是默认的顶部位置.这是一个简单的代码片段

library(ggplot2)
df <- data.frame(x = c(1:10), y = rnorm(10, 1, 2))
ggplot(df, aes(x, y))+
   geom_line() +
   ggtitle("Demo") + 
   theme(plot.title = element_text(vjust = -3)) 
Run Code Online (Sandbox Code Playgroud)

在过去,我能够通过不同的vjust价值来做到这一点,但现在它无法正常工作.知道怎么做吗?

Hen*_*rik 13

ggplot问题"vjust不能在2.0版本中用于plot.title?" ,哈德利写道:

"所有文本元素现在都有一个边距,默认情况下会缩放到主题中的字体大小.这会导致更好的间距,特别是在大字体大小时.这意味着黑客使用vjust并且hjust不再工作.而是使用margin()参数element_text()"

使用tb参数margin调整标题,例如:

ggplot(df, aes(x, y))+
  geom_line() +
  ggtitle("Demo") + 
    theme(plot.title = element_text(margin = margin(t = 10, b = -20)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

请参阅参考资料?margin.


请注意,您应该使用margin参数for axis.title.xaxis.title.y:

ggplot() + ggtitle("this is title") + xlab("this is x") + ylab("this is y") + 
  theme(plot.title = element_text(margin = margin(b = -10)),
        axis.title.x = element_text(margin = margin(t = -10)),
        axis.title.y = element_text(margin = margin(r = -10)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • `t`op,`r`ight,`b`ottom,`l`eft,我假设. (2认同)