我想将标题放在图中而不是默认的顶部位置。 这是一个简单的代码片段
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))
过去我能够通过改变vjust
值来做到这一点,但现在它无法正常工作。知道怎么做吗?
答案 0 :(得分:13)
在the ggplot issue "vjust not working in v 2.0 for plot.title?"中,哈德利写道:
&#34;所有文本元素现在都有一个边距,默认情况下会缩放字体
主题中的大小。这导致更好的间距,特别是在大字体时
大小。这意味着vjust
和hjust
不再有效的黑客行为。代替,
使用margin()
&#34;
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)))
有关更多参数,请参阅?margin
。
请注意,您应该使用margin
和axis.title.x
的{{1}}参数:
axis.title.y