【发布时间】:2019-10-24 17:01:30
【问题描述】:
我正在将 rgl 中的 4 个子图绘制到一个窗口中,我希望它们填充可用空间:
library(rgl);
rgl::open3d(windowRect = c(0,50, 1200, 1200));
rgl::mfrow3d(2, 2);
rgl::next3d(reuse=FALSE);
rgl::bg3d("yellow");
rgl::next3d(reuse=FALSE);
rgl::bg3d("blue");
rgl::next3d(reuse=FALSE);
rgl::bg3d("red");
rgl::next3d(reuse=FALSE);
rgl::bg3d("green");
但是,结果只使用了窗口的一小部分,它看起来像这样:
如何让 4 个颜色区域跨越整个窗口,而不是只使用左下角的小部分?
【问题讨论】:
-
观察;当我逐行运行代码时,它按预期执行,但将所有代码作为一个块运行,我得到与您相同的图像。在
rgl::open3d()行之后添加Sys.sleep(1)允许代码作为一个块运行并具有正确的输出......所以 -
@user20650 谢谢,您的评论帮助我解决了这个问题。不过,在拨打
rgl::mfrow3d()之后,我也必须添加Sys.sleep(1)。您可以将其添加为答案以便我接受吗? -
@user20650 嗯,等等。当再次运行相同的代码(等待)时,它停止工作。我现在无法让它再次工作,无论我多久运行一次工作的代码。也许我将不得不将此报告为错误或在邮件列表中询问。
-
它对我来说反复有效,但它确实暗示了其他一些问题。是的,我认为 R 列表将是一个列出的好地方
-
我找到了解决方案。这个想法来自this ML post from 2008 about an rgl bug。也许它从来没有修复过。