我想将标题放在图中而不是默认的顶部位置.这是一个简单的代码片段
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()"
使用t和b参数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.x和axis.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)