如何在绘图标题中组合文本和数学表达式。如果使用 paste 函数,则表达式会被转换为字符类型。例如,我想要以下内容作为标题:
$ARL_1$ 曲线对应 $S^2$
谢谢。
如何在绘图标题中组合文本和数学表达式。如果使用 paste 函数,则表达式会被转换为字符类型。例如,我想要以下内容作为标题:
$ARL_1$ 曲线对应 $S^2$
谢谢。
你可以查看?plotmath
来了解如何完成这样的事情。以下是一个例子:
plot(1:10, main = expression(ARL[1] ~ "curve for" ~ S^2))
[.]
是下标,而^
用于上标。~
会使表达式中的各个部分间隔开,就像有实际的空格一样。
编辑:通常我会执行以下操作:
plot(1:10, main = expression(ARL[1] ~ curve ~ for ~ S^2))
但是这会导致错误,因为for
被解释为开始一个for()
循环调用。
您还可以使用bquote(paste(...))
,这比expression
更灵活: 您可以使用.(x)
在标签中包含变量值(例如x
的值)。例如:
x<- 232323
plot(1:10, main = bquote(paste(ARL[1], " curve for ", S^2, "; x=",.(x))))
plot(1:10, main = bquote(ARL[1]- IRTFM"曲线为"S^2";"x==.(x)))
,
或""
,引入paste
会让人很痛苦。 - Gavin Simpsonbquote()
),只是想指出如果可以避免,就不要在其中引入paste。bquote()
很强大,但使用得不够多。 - Gavin Simpson您还可以使用latex2exp::TeX
将TeX即时转换为表达式:
plot(cars, main = TeX("$ARL_1$ curve for $S^2$"))
expression(ARL[1] ~ curve ~ "for" ~ S^2)
,那么第二个将会起作用。 - Marek~
和空格是不同数量的空间...? - Gavin Simpson