我希望能夠使用R中的多個繪圖來跟蹤正在運行的模擬。最簡單的方法是創建一個多面板圖(在我的情況下,我只使用par(mfrow = c(2,2))
) ,然後依次繪製四個地塊的每一個。問題是它必須每次完全重繪圖,每次函數到達最後一個(第四個)面板時,整個窗口都會重繪。我想要的是能夠轉回到例如第一個面板,然後繪製在以前的頂部的下一個點。如果這是單獨的窗口,我可以用dev.set()
在它們之間改變,但是面板有類似的東西嗎?更改R中多面板圖中的繪圖面板
4
A
回答
4
如果您將繪圖設置爲最開始的最終尺寸,則可以使用par(mfg=
在面板之間切換並添加到它們中。
一個例子:
pars <- c('plt','usr')
par(mfrow=c(2,2))
plot(anscombe$x1, anscombe$y1, type='n')
par1 <- c(list(mfg=c(1,1,2,2)), par(pars))
plot(anscombe$x2, anscombe$y2, type='n')
par2 <- c(list(mfg=c(1,2,2,2)), par(pars))
plot(anscombe$x3, anscombe$y3, type='n')
par3 <- c(list(mfg=c(2,1,2,2)), par(pars))
plot(anscombe$x4, anscombe$y4, type='n')
par4 <- c(list(mfg=c(2,2,2,2)), par(pars))
for(i in 1:11) {
par(par1)
points(anscombe$x1[i], anscombe$y1[i])
Sys.sleep(0.5)
par(par2)
points(anscombe$x2[i], anscombe$y2[i])
Sys.sleep(0.5)
par(par3)
points(anscombe$x3[i], anscombe$y3[i])
Sys.sleep(0.5)
par(par4)
points(anscombe$x4[i], anscombe$y4[i])
Sys.sleep(0.5)
}
+0
謝謝!這比引用問題中的答案更有用,它表明使用split.screen() - 但split.screen()具有奇怪和未識別的行爲,如果我循環回到頂部(參考幫助文件)。我陷入了使用mfg時座標系統混亂的問題,但這個答案通過爲每個plot保存par來很好地解決了這個問題。 –
相關問題
- 1. 在r中更改圖的面板
- 2. 更改格子圖中的繪圖面板的大小
- 3. 面板內繪圖
- 4. Java繪圖面板?
- 5. R - 每個面板有多條線的面板圖
- 6. 將鼠標光標更改爲繪圖面板中的鉛筆
- 7. 在面板內的圖像中繪製
- 8. 在油漆面板中更改繪製圖像
- 9. r - 在直方圖中重複面板(面板作爲對象?)
- 10. 在面板上繪圖
- 11. C#在面板上繪圖
- 12. 繪圖面板大小
- 13. 在小面板中的大圖像(圖像在面板外面)
- 14. C#使用Graphics在面板內的面板上繪圖。第一個面板比第二個面板更大
- 15. Java Swing - 在面板中繪製圖形
- 16. R - 從列表中創建4個繪圖的2x2面板
- 17. 更新面板中的更新面板
- 18. 更改引導面板的圖標
- 19. 更改面板
- 20. 更改面板
- 21. 更改Sencha面板中的頁面
- 22. 更改地層圖上的x軸限制(即多面板圖)
- 23. 如何在R中的一個面板中顯示多個圖?
- 24. 在gui中更改面板
- 25. R ggplot2:更改圖例和麪板之間的間距
- 26. wxpython和更新面板中的matplotlib圖
- 27. 如何在Java中保存繪圖面板中的圖像?
- 28. 平板視圖中的摺疊面板
- 29. 非面板視圖的標籤面板
- 30. 更新面板中的圖片URL不會更改
'split.screen'有一些例子 – baptiste
看來我可以做到這一點使用'split.screen()'之後'屏幕()'命令:HTTP:// stackoverflow.com/questions/3151207/plot-to-specific-plot-in-multiple-plot-window?rq=1 –
也'mfg' in'?par' – baptiste