ggplot2使用vjust来调整表达式的位置

时间:2016-03-17 16:12:38

标签: r ggplot2 themes expression

编辑:我的原帖(见下文)询问为什么当我将字符串更改为表达式时,vjust没有在ggplot中移动我的标题位置(所以我可能包括一些下标)。

我刚试过运行原始代码,现在看起来并没有移动我的标题的位置,无论是字符串还是表达式!

我现在正式感到困惑!为什么不再工作?我错过了什么吗?

这里有一些代码可以告诉你我的意思......

ggplot(mtcars, aes(wt, mpg)) + 
  geom_line() +
  theme_classic() +
  theme(plot.title = element_text(size = rel(2), face="bold", vjust=-4)) +
  labs(title="Title") 

在一个美好的夜晚睡觉之后,也许这一切都会变得非常有意义......

ORIGNIAL POST:

我已经在互联网上搜了几个小时了,我找到的最接近我问题的解决办法是......

ggplot2: Font Style in label expression

我使用ggplot2绘制了一些图表,并且(完成了我的研究)不仅发现了如何在我的标题中使用下标文本(原始标题只是简单的字符串),还发现了如何制作我的(新下标)标题以粗体字显示。

我之前使用theme(plot.title = element_text(size=rel(2), vjust=-4, face='bold')来调整我的标题的大小,位置和重量,但现在标题以表达式(而不是字符串)的形式显示,这些内容的某些部分似乎不起作用更多。

正如我上面所说 - 我现在已经解决了“大胆的”问题。部分。 我很确定标题仍然以更大的尺寸出现。 但是,' vjust'元素似乎不起作用。

关于我如何调整标题的垂直位置的任何想法,因为它们是表达式而不是字符串?

我在电脑上,试图在刚刚开放的R会话中运行代码 - 它没有用。

这里有一些示例代码来举例说明我的观点:

这有效:

ggplot(mtcars, aes(wt, mpg)) + 
  geom_point() +
  theme(plot.title = element_text(size = rel(2), vjust=-4)) +
  labs(title="DDD") 

这不是:

ggplot(mtcars, aes(wt, mpg)) + 
  geom_point() +
  theme(plot.title = element_text(size = rel(2), vjust=-4)) +
  labs(title=expression(paste(bold(D[s]), bold(-D[c]), bold(-D[r])))) 

我想我真的只是希望有一个替代theme(plot.title = element_text(size = rel(2), vjust=-4)),我可以在表达式而不是字符串上使用,这将允许我改变我的情节标题的位置(即,替代要么是element_text,要么是vjust)。

1 个答案:

答案 0 :(得分:1)

ggplot2 moves the y position of the title to oppose vjust,所以它没有任何效果。您可以改为调整边距,

ggplot()+
  theme(plot.title = element_text(vjust=-5, 
                                  debug=TRUE, 
                         margin = margin(1*c(1,1,1,1), unit = "cm"))) +
  labs(title="Title")