2014-09-29 38 views
1

應該有一個簡單的方法來處理這個問題,但我不知道。我用R的子圖函數par(mfrow=c(5,5))繪製了多個數字(即25個數字)。例如,在繪製了10個數字後,我已經對第11個繪圖做了一些錯誤,現在如果我想使用plot函數再次繪製它,則需要第12個子圖的空間,這意味着整個子圖結構會發生變化。我知道par(new=TRUE)會讓我重新繪製第11位數字的頂部,但如果修改後的情節如此不同以至於重疊不起作用呢?這個想法是抹去第11位數字,然後重新繪製一遍。在繪製所有25個數字之後如何更改第一個繪圖?在R的par()函數下替換一個繪圖

+1

基礎圖形是添加劑。這意味着一旦畫出了一些東西,除非你擦除整個設備,否則它不能被取消。我想你可以在前面的圖上繪製白色的矩形,但是技術上沒有「擦除」它。 – MrFlick 2014-09-29 03:05:38

+0

你是否「手工繪製」25個地塊?你不使用腳本嗎?只需要一個腳本,以par(new = TRUE)開始,創建25個圖,然後您可以重新運行該腳本,直至獲得所需的結果。 – MrGumble 2014-09-29 07:04:44

回答

0

可以使用screen功能家族,雖然我承認不是他們的愛好者。正如你所希望的那樣,它只能用於獨家par(mfrow=c(5.5))甚至layout(...)

話雖如此,完全有可能重畫在屏幕上。對於實例:

split.screen(c(5,5)) 
for (scr in 1:25) { 
    screen(scr) 
    par(mar=rep(0,4)+0.1) 
    plot(0) 
} 
screen(7) 
par(bg='white') # necessary for some display types 
erase.screen() 
plot(2) 

(這當然不是一個美麗的例子,但它是功能)

通知的背景顏色(bg)白色的顯式設置;有些顯示器假定透明度,但不這樣做似乎沒有任何影響(即erase.screen()什麼也不做)。

話雖如此,有許多現代和近現代的圖形功能/庫/包,做這個包而不是支持的事情。我還沒有使用圖像捕獲機制(例如夾在png(file="...")dev.off()中的東西)對此進行測試。 注意事項