2011-05-17 29 views
10

在下面我的例子進行了一系列的陰謀希望能控制,當我去到下一個陰謀,一個用鼠標點擊(或鍵盤輸入)製作,通過點擊

for (i in 1:5){ 
    plot(1:i) 
    Sys.sleep(1) 
    #add something here that requests mouse click to proceed 
} 

是這可能嗎?在X11()幫助文件中有一個設置標註了「clickToConfirm」,但我無法弄清楚它做了什麼。

這也將有助於我是能夠通過使用箭頭鍵地塊來回滾動。這可能嗎?

目前,如果我需要看很多地塊的我將他們輸出到大.pdf文件和滾動,雖然他們都在那裏,但是這是一個有點麻煩。

感謝

湯姆

回答

11

在R,將通過設置par(ask=TRUE)來完成。試試下面的代碼,它顯示瞭如何退出功能時重置面值:

op <- par(ask=TRUE) 
for (i in 1:5){ 
    plot(1:i) 
} 
par(op) 

如果你想保留一個歷史瀏覽,你可以打開一個窗口,並在History菜單中點擊recording,或者你可以自己打開窗口並記錄歷史。證明了一個功能:

plot.fun <- function(){ 
    windows(record=TRUE) # opens a window and starts recording 
    op <- par(ask=TRUE) 
    on.exit(par(op)) 

    for (i in 1:5){ 
     plot(1:i) 
    } 
    windows.options(record=FALSE) #stops recording. 
} 
plot.fun() 

然而,這將保留所有以前的情節在歷史瀏覽一樣,所以,如果你運行這段代碼3次,你將不得不在劇情歷史15個地塊。另請注意,打開的繪圖窗口將繼續錄製,直到您關閉菜單中的錄製。

可以隨着劇情的歷史玩,因爲你將有一個變量.SavedPlots其中包括已保存歷史情節。可以使用繪圖窗口中的菜單History > clear history清除它。如果要清除從控制檯的歷史,你可以砍,通過

.SavedPlots <- NULL 

不過我勸你不要這樣做,因爲改變.SavedPlots變量會導致R鍵崩潰。

又見?windows和?recordPlot對位的更多信息。但是當你接近R的內部代碼時,要注意,如果你開始玩這些東西,你會變得非常尷尬。

+0

太好了,謝謝。但是你是否知道我的問題的第二部分的答案 - '你可以使用(比如說)方向鍵在圖上來回滾動嗎?確切地說,兩次點擊的圖表更改爲 – 2011-05-17 13:08:26

4

您可以使用定位器 - 現在地塊更改點擊

for (i in 1:5){ 
    plot(1:i) 
    locator(1) 
} 
+0

。 – 2011-05-17 13:05:49

7

對於來回滾動使用箭頭鍵地塊之間:這取決於平臺/ R接口上。

  • 視窗:有錄音功能(見R for Windows FAQ的Q5),其使用的Page Up/Page Down鍵
  • 的MacOS:標準GUI下,石英窗口蘋果左和蘋果,右箭頭
  • 下標準的Unix(無GUI)接口
  • ,事情更有限。您可以使用RStudio(裏面有很多議論現在)...我本來以爲JGR將有情節的歷史爲好,但它似乎並沒有...
+0

提及RStudio的+1和不同操作系統上的不同選項 – 2011-05-17 13:45:48