2012-11-02 46 views
3

我试图在我的情节中设置图例的格式,但由于希腊语和上标,我必须使用表达式()。然而,当我想显示R^2 = 0.45,P < 0.0001,我得到R^2 = 0.45 P < 1E-04,当我输入R:传说中的表达式如何在两个值之间添加逗号以及如何抑制科学记数法

legend(expression(r^2==0.9230~~P<0.0001)) 

我试图寻找了list()函数但它对逗号没有帮助。我找不到在expression()函数中使用小数的任何内容。

任何建议,将不胜感激。

感谢

+0

对于科学计数法,R使用“惩罚系统”。检查'scipen'下的'?options'。当选项(scipen = HighNumber)时,它不会倾向于使用科学记数法 - 而更倾向于使用负数。默认值为零。在这种情况下,如果您按照Josh的建议使用粘贴,则无论如何都不会尝试转换为科学。 –

回答

11

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

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

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

enter image description here

4

下面是一个使用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))) 

enter image description here

相关问题