2013-11-20 106 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

並感謝這個好的小例子。它使測試更快。 –

相關問題