2013-04-20 49 views
0

我正在尝试使用图形输出编写函数。 我想插入一个具有参数值的图例。将参数的值插入图例

例如:

f<-function(x,alpha=0.9){ 
    .... 
    plot(x) 
    legend("topleft",expression(alpha)???) 
    } 

'表达(阿尔法)' 应等于阿尔法的当前值。

任何人都可以告诉我我能做到吗?

回答

1

我没有看到一个测试用例尚未,但通常的回答到这种问题的(在需要计算的表达式中的一个部分)bquote用其内置.()功能:

f<-function(x,alpha=0.9){ .... plot(x) legend("topleft", bquote(.(alpha))) } 

`。()函数隔离了值得评估的部分。又见plotmath页:

?plotmath 

有时需要substitute

alpha=0.2 
substitute(alpha, list(alpha=alpha)) 
#0.2 

....但大多数人发现bquote更容易使用。

某些编辑要求的addtional代码,以避免覆盖LABEL1:

x<-seq(0,60,length=150) 
y<-rnorm(150,0,10) 
yy<-x+y 
d<-cbind(x,yy) 
m<-lm(d[,2]~d[,1]) 
plot(x,yy) > abline(m) 
label1<-summary(m)$'r.squared' 
label2<-summary(m)$'adj.r.squared' 
legend("topleft", legend=bquote(R^2==.(label1)*";"~Adj.R^2==.(label2))) 
+0

你好迪文,谢谢您! 我已经设法插入一件东西,但是现在我想插入两件东西,例如, R平方和Adj-R平方。 我不知道如何完成代码: > x <-seq(0,60,length = 150) > y <-rnorm(150,0,10) > yy <-x + y > (x,yy) > abline(m) > label1 <-summary(m <-m <-dm,d [,2]〜d [,1]) > plot(x,yy) > )$'r.squared' > label1 <-summary(m)$'adj.r.squared' > legend(“topleft”,legend = bquote(???)) [sorry for my ugly text,我也必须学习这种编码:)] – DatamineR 2013-04-21 01:53:42

+0

感叹。如果您在问题主体中张贴了经过测试的代码,那将会容易得多。用回车替换所有“>”的痛苦。考虑到程序员尊重其他程序员的懒惰。 – 2013-04-21 01:59:29

+0

这两个表达式现在在一行中。是否也可以描述R^2和adj。 R^2彼此? – DatamineR 2013-04-21 02:12:49