复杂ggplot2标题中的下标字母

Subscripting letters in complex ggplot2 title

我想在标题中包含单词 "in" 的标题中添加字母下标,事实证明这非常令人头疼。我查看了 this thread 并尝试根据我的目的对其进行翻译,但没有取得任何成功。

我想创建一个显示 "Growth Rate in SMMAsn" 的标题,其中 "Asn" 是下标。 如果我使用标准引用的标题,它显然会按原样显示。

当我尝试使用

labs(title=expression(Growth Rate 'in' SMM[Asn]))

我得到一个错误:

Error: Cannot add ggproto objects together. Did you forget to add this object to a ggplot object?

R Studio 在该行指出了一个错误:

unexpected token: 'Rate'
unexpected token: 'SMM'
unexpected token: '['
unexpected closing bracket: ']'
unmatched opening bracket: '('
unexpected token: ')'

只是为了看看我是否能让下标工作,我尝试只对需要下标的单词使用表达式函数:

labs(title = expression(SMM[Asn]))

效果很好!我真的很兴奋,我想,因为表达式 "Growth" 部分之后的所有内容都会给我某种错误,我也许可以将标题的其余部分和需要用表达式函数下标的部分连接起来:

labs(title=c("Growth Rate in", (expression(SMM[Asn]))))

所做的只是给我一个标题,上面写着 "Growth Rate in" 将需要下标的部分完全从标题中删除。

我有点不知所措。除了 R 之外,我没有接受过任何语言的正式培训,所以我担心这是我缺少的一些基本编码逻辑,但这让我筋疲力尽,我无法弄清楚。任何有关如何改善这种情况的建议都将不胜感激。

如果有帮助,这里是整个上下文:

ggplot(klett.smm.asn2, aes(x=Strain, y=Generations.hr, fill=Strain))+
  geom_bar(stat="identity", width = 0.7, color="black")+
  geom_errorbar(aes(ymin=Generations.hr-StDev, ymax=Generations.hr+StDev), width=.1, size = 1)+
  theme(axis.text.x=element_text(hjust=.5, vjust=1))+
  theme(text=element_text(size=30), 
        plot.title = element_text(hjust = 0.5),
        legend.position="none",
        axis.title.x = element_blank() )+
  ylab("Generations/hr")+
  #labs(title=expression(Growth Rate 'in' SMM[Asn]))+
  #labs(title = expression(SMM[Asn]))
  labs(title=c("Growth Rate in", (expression(SMM[Asn]))))+
  scale_fill_manual(values=c("#A0A0A0","#45b500", "#00b3f2", "#ff61c7"))+
  scale_y_continuous(limits=c(0,0.9))+
  geom_text(x = 4, y = 0.9, label = "**", size = 10)+
  geom_text(x = 3, y = 0.88, label = "**", size = 10)+
  geom_text(x = 2, y = 0.84, label = "*", size = 10)

标题可以是一个公式,单词之间用波浪号分隔。使用 built-in BOD:

library(ggplot2)
ggplot(BOD, aes(Time, demand)) +
  geom_line() +
  labs(title = Growth ~ Rate ~ 'in' ~ SMM[Asn])