如何在绘图点标签中包含下标

7

大家好,我是一名新手,对于R语言掌握不够熟练,如果我的问题过于基础,还请见谅。 我想在x轴上的11点和y轴上的900点添加文本信息,其中应该显示为带有下标0的t0= -4.0280,而 t0 <- -4.0280 是其含义。 为了实现这个功能,我尝试了以下方法:

text(11,900,paste("t[0]=",t0),cex=0.8) 
# which gives 
't[0]= -4.0280'

text(11,900,expression(paste("t[0]=",t0)),cex=0.8) 
# which gives 
't[0]=t0'

# the closest I've gotten is:    
text(11,900,expression(paste(t[0]==t0)),cex=0.8)

我希望使用下标,但返回的值是t0,而不是我的值-4.0280。

有人能告诉我哪里出错了吗?

谢谢。

2个回答

5
你可以用substitute替换expression。无需使用paste来连接字符串。参数list(t0 = t0)告诉substitute将字符串t0替换为对象t0的值:
plot(1,1)

t0 <- 1.3

text(1, 0.8, substitute(t[0]==t0, list(t0 = t0)), cex = 0.8)

enter image description here


5

1
谢谢大家,这两个答案都非常好用。只是为了明确,如果这不是正确的用法,我应该在什么情况下使用“粘贴”? - JJS
这里是 paste 函数的几个用法示例:https://dev59.com/nmUp5IYBdhLWcg3wHUvi#15506875 - Ben
我已经编辑了我的回答,以展示你如何在这里使用 paste,但这并不是最有效的方法。通常我使用 paste 创建字符向量,而不是包括像你的例子中那样的变量的对象。尽管如此,有时我会做一些类似于 eval(parse(text=paste0("examp",i)) 的事情,其中 paste 的结果被评估,但这被认为是不好的做法 - library(fortunes);fortune(106) - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接