将参数传递给热图内的add.expr中的函数。2
我正在使用将参数传递给热图内的add.expr中的函数。2,r,line,scope,heatmap,R,Line,Scope,Heatmap,我正在使用heatmap.2函数(gpr包)生成集群热图。我想使用add.expr参数在图像的可变位置添加一条垂直线 比如说, xx=replicate(10, rnorm(10)) # some random matrix heatmap.2(xx, trace="none", add.expr=abline(v=c(3.5,6.5), lwd=3)) 这很有效。问题是,如果我将行位置作为变量传递,它将不起作用: linePosition = c(3.5,6.5) hea
heatmap.2
函数(gpr包)生成集群热图。我想使用add.expr
参数在图像的可变位置添加一条垂直线
比如说,
xx=replicate(10, rnorm(10)) # some random matrix
heatmap.2(xx, trace="none",
add.expr=abline(v=c(3.5,6.5), lwd=3))
这很有效。问题是,如果我将行位置作为变量传递,它将不起作用:
linePosition = c(3.5,6.5)
heatmap.2(...,
add.expr=abline(v=linePosition, lwd=3))
看起来像是从heatmap.2函数内部调用了abline
函数,但没有看到外部变量
请告知最好的方法是什么
当然,除了我自己的函数外,我不想修改任何函数。这似乎增加了两条粗线:
heatmap.2(xx,
add.expr=eval( abline(v=linePosition, lwd=3)))
对不起,当时没有投票并接受你的答案。不知怎的,我忽略了它。不管怎样,现在看来不需要eval了,可能是在R或heatmap.2更新之后。这在R4.0.3中似乎不再有效了。我最好使用abline(v=dynGet(“linePosition”,inherits=TRUE),lwd=3)在调用帧中查找'linePosition'的值。不太漂亮,可能不可移植:-/在R3.6.3中,eval调用运行良好,OpNow worsk的原始版本。因此,在过去7年的某个时候,《gplots》的作者可能加强了对论点的评估。