2013-11-20 37 views
1

我正在尝试在格子中创建一个图形,并且基于逻辑变量出现关键点。也就是说,只有在逻辑变量为真(这将在R-shiny网站上并且用户将指示他们是否需要密钥)时才会出现。值得注意的是,我希望钥匙出现在图表的右侧 - 而不是在绘图区域。我可以在格式化格子键时使用if()吗?

我可以使用key=并获得使用space="right"选择权的关键,但打开没有明显的方式和关闭按键

或者,我可以用draw.key()功能和转动钥匙上关闭使用draw=选项,但是然后键在绘图区而不在右边。所以我想我会使用if()语句触发key选项 - 但这不起作用。没有键被绘制,逻辑语句被忽略。我怎样才能使这个工作?

重复的例子:

library(lattice) 

A<-rnorm(1:100) 
B<-rnorm(1:100) 
K<-TRUE 

xyplot(A~B, 
    if(K==TRUE) { 
     key=list(lines=list(color="blue")), space="right") 
    }, 

    panel=function(x,y,...){ 
     panel.xyplot(x,y,...) 
    } 
) 

编辑补充:在代码的其他部分,如果语句用于触发哪些元素出现在关键的,这使得这个更加神秘的对我。

回答

2

您需要的if语句的值赋给key(在正确的范围内):

xyplot(A~B, key= 
    if(K) { 
     key=list(lines=list(color="blue")) 
    }, 

    panel=function(x,y,...){ 
     panel.xyplot(x,y,...) 
    } 
) 

(您可以删除内key=

+0

谢谢 - 我没有想到的所有的范围问题!我将来会记住这一点。 –

+0

并感谢这个好的小例子。它使测试更快。 –

相关问题