我该如何在R中使用Latex表达式中的变量?
比如:
plot(X, Y, main=expression(R^2))
将R插入一个漂亮的上标2作为主标题。
但是假设我想让它显示为“R^2: 0.5”,其中0.5来自于一个R变量。我该怎么做?
Owen的技巧非常酷,但并不是通常的做法。如果使用bquote
,这实际上相当容易。 bquote
与quote
执行相同,唯一的区别是在.()
之间的所有内容将在指定环境中进行评估(如果未指定任何内容,则在全局环境中进行评估)。
一个简单的例子:
X <- 1:10
Y <- 1:10
a <- 0.8
plot(X,Y,main=bquote(R^2 : .(a)))
给出:
更多的示例和可能性,请参见?bquote
和?plotmath
tikz和psfrag允许您使用实际的LaTeX代码和输出,而不是plotmath的,从而实现更好的排版一致性。
有关详细信息,请参见此问题。 将LaTeX引入R图
好的,这个有效...
call(':', quote(R^2), a)
@Joris提供的另一种变化是substitute()
。你需要给substitute()
一个表达式和一个环境或列表来评估这个表达式。通常传递一个列表是最容易的,尤其是像这里提出的这个问题。
plot(X,Y, main = substitute(R^2 : a, list(a = a)))
substitute()
调用来了解为什么它有效:> substitute(R^2 : a, list(a = a))
R^2:0.8
a
会被替换为列表中 a
的值。
plotmath
功能必须在R语法和解析器的约定下工作。一旦你习惯了它,就会发现它比看起来要容易得多。 - Gavin Simpson