R plot()。每个条目具有多个变量的图例

时间:2013-08-09 17:09:10

标签: r plot expression paste legend

我对R有些新意见。我已经跟随并在以下两个主题中实现了结果:

http://tolstoy.newcastle.edu.au/R/e17/help/12/03/7984.html

http://lukemiller.org/index.php/2012/10/adding-p-values-and-r-squared-values-to-a-plot-using-expression/

第二个链接承认第一个解决方案,尽管是以更详细的方式。

这是我已经拥有的:

  

sigma< - c(1,2,3)

     

rp< - vector('expression',3)

     

rp [1]< - 替代(表达式(paste(sigma == Value1,“%”)),list(Value1 = sigma [1]))[2]

     

rp [2]< - 替代(表达式(paste(sigma == Value1,“%”)),list(Value1 = sigma [2]))[2]

     

rp [3]< - substitute(表达式(paste(sigma == Value1,“%”)),list(Value1 = sigma [3]))[2]

     

plot(0); legend(x =“topright”,legend = rp)

现在,我对表达式(paste())不是很精明。我想扩展每个条目的附加信息,以便我可以包含另一个变量。例如,

  

mu< -c(4,5,6)

我想现在将mu添加到第一个图例条目,看起来像

(希腊语)sigma = 1%,(希腊语)mu = 4%

如何修改上面的表达式(paste())组合来实现这个目标?

此外,当我将图例绘制出来时,文字非常“正确”。如何确保它在边界框中居中?

感谢您的帮助。

Maziar

1 个答案:

答案 0 :(得分:2)

这是一个不那么优雅的解决方案:

sigma <- c(1,2,3)
mu <- c(4,5,6)
rp <- vector('expression',3)
i=1
for (i in 1:length(sigma)){
  jnk=paste("paste(sigma == ", sigma[i],",', ',", "mu == ", mu[i],")")
  rp[i]=parse(text=jnk)  
}
plot(0);legend(x="bottomleft",legend=rp)

文本对齐问题是一个不同且非常基本的问题,您可以在其他地方找到解决方案。