复杂ggplot2标题中的下标字母

问题描述 投票:0回答:1

我想在标题中下标字母,在标题中包括单词“ 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, label = "**", size = 10)+
  geom_text(x = 2, y = 0.84, label = "*", size = 10)
r ggplot2 subscript
1个回答
0
投票

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

library(ggplot2)
ggplot(BOD, aes(Time, demand)) +
  geom_line() +
  labs(title = Growth ~ Rate ~ 'in' ~ SMM[Asn])
© www.soinside.com 2019 - 2024. All rights reserved.