R:图例表达式如何在两个值之间添加逗号以及如何抑制科学记数法

cra*_*ian 3 plot expression r legend plotmath

我正在尝试在我的情节中格式化图例,但由于希腊语和上标,我必须使用表达式().但是,当我想显示r ^ 2 = 0.45,P <0.0001时,我得到r ^ 2 = 0.45 P <1e-04,当我输入

legend(expression(r^2==0.9230~~P<0.0001))
Run Code Online (Sandbox Code Playgroud)

我试着查找list()函数,但它对逗号没有帮助.我也找不到在expression()函数中使用小数的任何内容.

任何建议,将不胜感激.

谢谢

Jos*_*ien 12

您可以使用paste()(在调用中expression())将字符串和不带引号的表达式拼接在一起.未引用的位将使用example(plotmath)和所展示的特殊规则进行评估demo(plotmath),而字符串将逐字打印.

下面是一个例子(也使用phantom(),因为<运营商期望/需要的东西给它的两个左和右):

plot(1)
legend(x = "topleft", 
       legend = expression(paste(r^2==0.9230, ",  ", P<phantom(), "0.0001")))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Mat*_*rde 5

这是使用substitute它的另一种方法避免phantom:

plot(1)
options(scipen=10)
legend(x = "topleft", 
       legend = substitute(list(r^2 == r2, P < p), list(r2=0.923, p=0.0001)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述