每当我在RGL plot3D上进行重新绘图时,都会使绘图的 View 方向重置为默认值。
有谁知道如何保存这些设置,以便在重绘绘图后可以重新应用它们。我尝试了this:
# save settings
pp <- par3d(no.readonly=TRUE)
# initialize plot
plot3d(c(), c(), c(), "", "", "")
# Replot data here
# ...
# restore settings
par3d(pp)
但是,这并没有恢复绘图方向。
编辑:打印出par3d()的结果表明,随着图的旋转和缩放,值没有得到更新,所以我猜这是问题所在。如果人们已经将它与rgl一起使用,则仅对于ShinyRGL可能是一个问题。
最佳答案
问题
rgl图的问题在于,在旋转图时,它不会更改par3d
旋转矩阵(与缩放相同)。另外,我找不到任何提示旋转/缩放状态存储位置的文档。因此,我们没有有关该图的当前状态的信息,并且不可能保存/加载该状态。
解决方案
我的解决方案是使用滑块手动控制绘图的旋转/缩放。当这些滑块更改时,我们将手动更新par3d
旋转矩阵。
虽然我真的不喜欢这种解决方案,因为它消除了绘图旋转/缩放的许多便利,但这是我在更新后能够保持旋转/缩放状态的唯一方法。
par3d
par3d
包含旋转/缩放状态。 关于r - Shiny 的RGL Plot3D : Keep Plot View Orientation On Replot,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29435356/