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

R ggplot2使用vjust调整表达式的位置,r,ggplot2,themes,expression,R,Ggplot2,Themes,Expression,编辑:我最初的帖子(见下文)是问为什么我把标题从字符串改为表达式(这样我就可以包含一些下标)时,我的标题在ggplot中的位置没有改变 我刚刚试着运行原始代码,现在vjust似乎没有移动我标题的位置,无论是字符串还是表达式 我现在完全糊涂了!为什么V4不再工作了?我错过什么了吗 这里有一些代码告诉你我的意思 ggplot(mtcars, aes(wt, mpg)) + geom_line() + theme_classic() + theme(plot.title = elemen

编辑:我最初的帖子(见下文)是问为什么我把标题从字符串改为表达式(这样我就可以包含一些下标)时,我的标题在ggplot中的位置没有改变

我刚刚试着运行原始代码,现在vjust似乎没有移动我标题的位置,无论是字符串还是表达式

我现在完全糊涂了!为什么V4不再工作了?我错过什么了吗

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

ggplot(mtcars, aes(wt, mpg)) + 
  geom_line() +
  theme_classic() +
  theme(plot.title = element_text(size = rel(2), face="bold", vjust=-4)) +
  labs(title="Title") 
也许睡个好觉之后一切都会变得很有意义

原始帖子:

我在互联网上搜索了几个小时,我发现最接近我问题的解决方案是

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

我以前使用
theme(plot.title=element\u text(size=rel(2),vjust=-4,face='bold')
来调整标题的大小、位置和权重,但现在标题以表达式(而不是字符串)的形式呈现,其中的一些部分似乎不再起作用

正如我上面所说的,我现在已经解决了“粗体”部分。 我很确定这些书名仍然以更大的尺寸出现。 然而,“vjust”元素似乎不起作用

既然我的标题是表达式而不是字符串,那么我该如何调整标题的垂直位置呢

我在一台PC机上,试图在新打开的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])))) 
我想我真的只是希望有一个替代
主题(plot.title=element\u text(size=rel(2),vjust=-4))
的方法,我可以在表达式上使用它,而不是在字符串上使用它来移动我的绘图标题的位置(即,可以替代element\u text或vjust).ggplot2,因此它没有任何效果。您可以调整边距

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

您的问题不包含答案。因此,很难理解您的问题并给出适当的答案。请提供您的数据(例如,使用
dput()
)或者使用R中的一个示例数据集。另外,将再现问题所需的最小代码添加到帖子中。标题使用
element\u text
函数格式化,该函数具有边距参数,您可以在其中写入
unit(rel(0.5),0,0,units=“pt”)
主要用于增加标题与绘图之间的距离。您可以进一步使用它。@TheRimalaya看起来可能有用,但您能否提供更多详细信息?也许一行代码会有所帮助?主题(plot.title=element_text(…)?如果你想得到一点帮助,你需要制作你的代码。任何人都应该能够复制你的代码并像在R中一样运行它。这现在是不可能的。例如,
Ylimit
是未知的。没有可运行的代码,我们只限于猜测,很难比TheRimalaya更具体。好的,抱歉。我对堆栈非常陌生溢出(至少在发布问题方面)。我将添加运行代码所需的额外位,但这些图形基于40个数据文件,每个文件包含约1200行数据,在绘制图形之前,需要进行大量的数据处理。我不想在这里撇开这些问题,但我最初的问题(包括代码)似乎很清楚还不足以继续,所以我想快速修复是不可能的。我只是希望有一个元素文本的替代品,我可以用在表达式而不是字符串中。感谢巴蒂斯特,我现在已经玩了一个
边距
,它似乎改变了整个情节的形状(包括标题)然而,我试图实现的是保持绘图的大小和形状不变,但将标题移动到刚好位于y轴顶部下方的位置。当我昨天使用
vjust
时,效果很好(至少当标题是字符串时),但现在
vjust
似乎对标题的位置没有任何影响(无论是字符串还是表达式).正如你所说的-我想用
vjust
移动标题的y位置,但现在它不起作用了-有什么想法吗?我不知道,边距似乎起作用了。如果你编辑你的问题,描述你想要标题的确切位置,这会有所帮助。好吧,那么结果是我没有尝试使用
margin .再多做一点实验就解决了我的问题-再次感谢=]@baptiste当我实施你的解决方案时,我的
ggtitle
位置上水平出现了一个奇怪的黄色背景条。我该如何解决这个问题?我正试图将标题移到情节的右上角。'hjust`允许我移动t标题向右移动,您的解决方案可以在绘图中垂直移动标题。但是,您的解决方案会在我的绘图中留下一条黄色背景带,使图形水平移动,从而使图形失真。请提供有关如何解决此问题的任何帮助。@Meli try
debug=FALSE