用复杂的ggplot2标题下标字母

我想在标题中下标字母,在标题中包括单词“ in”,事实证明这很头疼。我看过this thread,并尝试将其翻译用于我的目的,但没有成功。

我想创建一个标题为“ 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]))

那很好!我真的很兴奋和思考,因为表达式“增长”部分之后的所有内容都会给我带来某种错误,所以我可以将标题的其余部分和需要下标的部分与表达式函数连接起来:

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

所有要做的就是给我一个标题,上面写着“增长率”,将需要下标的部分完全排除在标题之外。

我有点不知所措。除了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,size = 10)+
  geom_text(x = 2,y = 0.84,label = "*",size = 10)
piggyjj 回答:用复杂的ggplot2标题下标字母

标题可以是一个用波浪号分隔的单词的公式。使用内置的BOD

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

screenshot

本文链接:https://www.f2er.com/3107316.html

大家都在问