我希望能够使用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